WordPress编码和内容摘录

时间:2013-02-05 07:57:07

标签: php wordpress

所以我写了一个函数来处理摘录,但只是为了首页。

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) . "...&nbsp;<a href='". get_permalink(the_ID()) ."'> continue reading</a>";
} else {
    $excerpt = implode(" ",$excerpt);
}
$excerpt = preg_replace('`\[[^\]]*\]`','',$excerpt);
echo $excerpt;
}

正如您在首页上看到的那样,问题在于它会不断将帖子ID附加到文本的前面。

我已经尝试调试代码并在调用implode之前转储$ excerpt数组,以检查id是否以某种方式放在数组中......它不是。

我对帖子ID是如何到达那里感到很遗憾。

有什么想法吗?

史蒂夫

2 个答案:

答案 0 :(得分:2)

函数the_ID()自动输出结果。改变这一行:

$excerpt = implode(" ",$excerpt) . "...&nbsp;<a href='". get_permalink(the_ID()) ."'> continue reading</a>";

要:

$excerpt = implode(" ",$excerpt) . "...&nbsp;<a href='". get_permalink(get_the_ID()) ."'> continue reading</a>";

查看the codex了解更多信息,Wordpress通常有一个替代功能,不会以以下格式输出结果:get_*

答案 1 :(得分:0)

您的代码

$excerpt = implode(" ",$excerpt) . "...&nbsp;<a href='". get_permalink(the_ID()) ."'> continue reading</a>";

您正在使用

the_ID()

将会发布帖子的ID,因此请尝试将其更改为

get_the_ID()

希望这就是你所面对的。 :)干杯