我是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帖子,内容很长,应该不会太长...
我该怎么做?
谢谢!
答案 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;
}
特定的代码示例,将是将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帖子,带有长文字,不应该那么长...”