如何在节选结尾处获得...(3点)? 我在我的functions.php中使用这个函数
function word_count($string, $limit) {
$words = explode(' ', $string);
return implode(' ', array_slice($words, 0, $limit));
}
在我的content.php中这样回应:
echo word_count(get_the_excerpt(), '20');
我想在节选结尾处写3个点。 请帮忙。 谢谢。
答案 0 :(得分:1)
如果您的摘录总是超过20个字,则可以使用以下内容随时添加省略号,同时使用word_count
函数将其截断
echo sprintf("%s…", word_count(get_the_excerpt(), 20));
如果摘录也可能是20个字或更短,您还应该检查它的长度
the_excerpt_max_words(20);
function the_excerpt_max_charlength($limit) {
$words = explode(' ', get_the_excerpt() );
//if excerpt has more than 20 words, truncate it and append ...
if( count($words) > 20 ){
return sprintf("%s…", implode(' ', array_slice($words, 0, $limit)) );
}
//otherwise just put it back together and return it
return implode(' ', $words);
}
答案 1 :(得分:1)
我更喜欢简单的答案。见http://codex.wordpress.org/Function_Reference/the_excerpt
function new_excerpt_more( $more ) {
return ''; // replace the normal [.....] with a empty string
}
add_filter('excerpt_more', 'new_excerpt_more');
答案 2 :(得分:0)
WordPress的the_excerpt()
function默认执行此操作(但我认为它使用[...]
)。
答案 3 :(得分:0)
我知道这个问题已有好几年了,但是由于当您搜索“在Wordpress摘录的末尾添加三个点”时出现了这个问题,因此我仍在回答,因为所有先前的答案都需要更改主题的主题更新后可能会被覆盖的文件。因此,这是我的建议使用JavaScript的答案。
为此,请安装类似于“插入页眉和页脚”的插件,该插件可让您在Wordpress博客的页眉,正文或页脚中添加自定义JavaScript。然后将此代码添加到页脚:
<script type='text/javascript'>
var x = document.querySelectorAll("div.entry-excerpt");
for (i = 0; i < x.length; i++) {
for (j = x[i].children.length-1; j >= 0; j--) {
if (x[i].children[j].tagName == "P") {
text = x[i].children[j].innerHTML;
lastchar = text.slice(text.length - 1);
if (lastchar == ">") break;
if (lastchar != ".") text += ".";
text += "..";
x[i].children[j].innerHTML = text;
break;
}
}
}
</script>
我不确定是否所有主题都使用“ entry-excerpt”类作为摘录,如果不是,则在第二行中更改类的名称。
脚本随后要做的是寻址每个摘录的<p>
容器中的最后一个<div>
元素,并在末尾添加三个点(一个标签中可能有多个<p>
标签)摘录,并且您不希望在段落的每个结尾后添加三个点)。
当结尾处已经有一个句号时,它还避免了打印三个点(因此只添加了两个点),如果摘录以HTML标记结尾(可能是嵌入式视频或像这样的地方,紧随其后的三个点看起来不太好)。这样,您还可以通过仅以HTML标记结束摘要来控制放置三个点的位置。