修整WP中的文本(php)

时间:2019-03-05 16:54:47

标签: php wordpress

我是php的新手,它试图修整由下面的代码(“信息”)部分(在我的自定义WP主题中)生成的文本行:

<div class="information"><?php echo get_post_meta(get_the_ID(),'information',true); ?></div> 

每个帖子的信息长度不同(基本上像摘录,但从每个帖子的自定义字段中提取)文本,由于我使用3列网格,因此弄乱了我的存档/博客页面。通过限制“信息”文本的长度不能超过150个字符,我需要在存档页面上看到的所有帖子的长度都一样长。

例如,我在这段代码中看到了功能,它取自默认的WP文件,但似乎无法将其包裹在上面看到的我自己的代码中,以使其像我希望的那样工作:< / p>

<?php
et_divi_post_meta();

if ( 'on' !== et_get_option( 'divi_blog_style', 'false' ) || ( is_search() && ( 'on' === get_post_meta( get_the_ID(), '_et_pb_use_builder', true ) ) ) ) {
    truncate_post( 270 );
} else {
    the_content();
}
?>

这就是我想要/谈论的:

之前:

POST 1 我是一个wordpress帖子,带有长文本,不应该太长,因为它会使存档页面的3列设置看起来很愚蠢。

之后:

POST 1 我是一个wordpress帖子,内容很长,应该不会太长...

我该怎么做?

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用substr()php函数获取字符串的一部分。

看看这个示例函数。

function trimResult($string, $len = 150){

    if(strlen($string)> $len){
        $string = substr($string,0,$len) . "..."; // to let the user know that was truncated...
    }

    return $string;
}

ref:http://php.net/substr

特定的代码示例,将是将php函数包含在全局文件中的更好解决方案。

<?php
function trimResult($string, $len = 150){

    if(strlen($string)> $len){
        $string = substr($string,0,$len) . "..."; // to let the user know that was truncated...
    }

    return $string;
}
?>

<div class="information"><?php echo trimResult(get_post_meta(get_the_ID(),'information',true)); ?></div>

希望有帮助。

答案 1 :(得分:0)

$post = "I am a wordpress post, with a long text, that should not be so long, as it makes the 3 column setup of the archive page look stupid.";

$post = mb_strimwidth($post, 0, 70, "...");

echo $post;

结果:“我是一个wordpress帖子,带有长文字,不应该那么长...”

Add ... if string is too long PHP