Regarding post text filtering

时间:2013-11-12 作者:Leo

这句话实际上是做什么的?

$text = apply_filters(\'the_content\', $text);
仅以下几点:

$text = get_the_content(\'\');

$text = strip_shortcodes( $text );
此处应用了什么过滤器?

1 个回复
SO网友:birgire

在循环中显示帖子内容的常用方法是:

the_content();
那会echo 输出,而不是return 它就像get_the_content().

但既然您想将其分配给$text 变量,您可以使用:

$text = get_the_content(\'\');
但接下来the_content 未应用输出过滤器。

这就是为什么你有这一行:

$text = apply_filters(\'the_content\', $text);
因为它会过滤$text 通过注册到的所有回调the_content 滤器

你总是可以从直接阅读源代码中学到很多东西。这个the_content() 函数为defined 作为:

function the_content( $more_link_text = null, $strip_teaser = false) {
        $content = get_the_content( $more_link_text, $strip_teaser );
        $content = apply_filters( \'the_content\', $content );
        $content = str_replace( \']]>\', \']]>\', $content );
        echo $content;
}
您可以检查注册到的所有回调the_content 使用以下内容筛选:

add_action( \'wp_footer\', function(){
   printf( \'<h3>Debug:</h3><pre>%s</pre>\', 
            print_r( $GLOBALS[\'wp_filter\'][\'the_content\'], TRUE ) ); 
});
这将在页面底部提供输出,类似于:

<h3>Debug:</h3>
<pre>Array
( 
    [10] => Array
        (
            [wptexturize] => Array
                (
                    [function] => wptexturize
                    [accepted_args] => 1
                )

            [convert_smilies] => Array
                (
                    [function] => convert_smilies
                    [accepted_args] => 1
                )

            [convert_chars] => Array
                (
                    [function] => convert_chars
                    [accepted_args] => 1
                )

            [wpautop] => Array
                (
                    [function] => wpautop
                    [accepted_args] => 1
                )

            [shortcode_unautop] => Array
                (
                    [function] => shortcode_unautop
                    [accepted_args] => 1
                )

            [prepend_attachment] => Array
                (
                    [function] => prepend_attachment
                    [accepted_args] => 1
                )

        )

    [11] => Array
        (
            [capital_P_dangit] => Array
                (
                    [function] => capital_P_dangit
                    [accepted_args] => 1
                )

            [do_shortcode] => Array
                (
                    [function] => do_shortcode
                    [accepted_args] => 1
                )
        )
)
其中,数组键编号是过滤器优先级。

结束

相关推荐

Too many actions/filters!

这里是wordpress的新成员。动作/过滤器的概念本身并不难理解。令我不知所措的是大量可用的操作和过滤器。当我阅读教程/指南时,他们会说“只需将此功能添加到wp\\U head操作或after\\U setup\\u主题”。如果没有这些教程,我究竟如何知道将该函数与该操作挂钩?作为一个初学者,我怎么会知道什么是合适的操作?有没有关于如何导航的建议?谢谢