如何使用自定义帖子类型的add_filter附加到the_content?


9

我有一个运行良好的自定义帖子类型,但是页面中的某些文本对于每个帖子都是相同的,因此我想使用函数将其添加。

我有这样的设置:

function new_default_content($content) {
global $post;
    if ($post->post_type == 'custom-post-type') {
    $content = 'Test text here';
    }
    return $content;
    }
add_filter('the_content', 'new_default_content');

但是,当我刷新页面时,我只会看到“此处的文字测试”,而不是帖子的内容(来自the_content)。

如果我注释掉此功能,则重新显示帖子内容。我究竟做错了什么?

Answers:


8

您将完全覆盖内容,而不是附加内容。您需要执行类似的操作$content .= 'Test text here';


在那个时期有很多力量,谢谢!另一个问题:我正在使用一个插件来显示“ Like”,“ + 1”等社交按钮,它们出现在new-default-content的上方—是否有办法让这些按钮显示在下方?我假设此过滤器会将“ _content”和“ new_default_content”作为一个完整的部分进行“整理”。
乔治C

1
好吧,您将添加新内容,因此它将在以后显示。您可以尝试以更高的优先级挂接过滤器,以使其在插件之前进行处理,因为插件也使用相同的过滤器。
helenhousandi 2011年

嗯,我将研究优先事项-再次感谢!
乔治C

仅供参考,我以优先级进行比赛,这成功了!再次感谢:)
George

-1

以简单的方式`

               if ($post->post_type == 'custom-post-type') {
                   $new_content= 'Test text here';
                                }
                       return $content.$new_content;

仅代码不被认为是高质量的答案。您应该解释代码的作用以及它如何回答问题。这样,编码新手的读者就会理解您的答案。你能解释一下你的代码吗?
cybmeta
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.