所以我写了一个函数来处理摘录,但只是为了首页。
http://stevefleming.co.uk/
功能是......
function excerpt_filter2($limit) {
$content = get_the_content();
$content = preg_replace("/<img[^>]+\>/i", "", $content);
$excerpt = explode(' ', $content, $limit);
if (count($excerpt)>=$limit) {
array_pop($excerpt);
$excerpt = implode(" ",$excerpt) . "... <a href='". get_permalink(the_ID()) ."'> continue reading</a>";
} else {
$excerpt = implode(" ",$excerpt);
}
$excerpt = preg_replace('`\[[^\]]*\]`','',$excerpt);
echo $excerpt;
}
正如您在首页上看到的那样,问题在于它会不断将帖子ID附加到文本的前面。
我已经尝试调试代码并在调用implode之前转储$ excerpt数组,以检查id是否以某种方式放在数组中......它不是。
我对帖子ID是如何到达那里感到很遗憾。
有什么想法吗?
史蒂夫
答案 0 :(得分:2)
函数the_ID()
自动输出结果。改变这一行:
$excerpt = implode(" ",$excerpt) . "... <a href='". get_permalink(the_ID()) ."'> continue reading</a>";
要:
$excerpt = implode(" ",$excerpt) . "... <a href='". get_permalink(get_the_ID()) ."'> continue reading</a>";
查看the codex了解更多信息,Wordpress通常有一个替代功能,不会以以下格式输出结果:get_*
。
答案 1 :(得分:0)
您的代码
$excerpt = implode(" ",$excerpt) . "... <a href='". get_permalink(the_ID()) ."'> continue reading</a>";
您正在使用
the_ID()
将会发布帖子的ID,因此请尝试将其更改为
get_the_ID()
希望这就是你所面对的。 :)干杯