正确使用内容筛选(_C)

时间:2012-07-30 作者:orionrush

如果不发布大量代码,这有点困难,但我的问题是:过滤的好处是什么apply_filters(\'the_content\', \'anything\');, 在我的循环示例中,我是否正在过滤the_content 过度或效率低下,还是有更好的方法?

我这样问是因为我刚刚尝试了Shareaholic插件,该插件应该可以检测帖子的结尾并插入社交链接。然而,在我的循环中,我发现它每次都会自我注入apply_filters(\'the_content\', \'anything\'); 被称为,这在我的情况下是相当多的。

因为我对WP和PHP不熟悉,而且Shareaholic是一个成熟的服务,所以我假设这些问题是由于我的无知造成的。Shareaholic有一个短代码,我可以直接在模板中实现,但我只想对我的方法进行一些一般性的反馈/验证/批评,以及任何如何清理或可能导致问题的想法。

我的循环如下所示:

    <?php /* Start loop */ ?>
    <?php while (have_posts()) : the_post(); ?>

    <?php function_for_post_banner() /* filters \'the_content\' to add a post banner */ ?>

    <?php get_template_part(\'templates/loop\', \'switch\');
    /* Switch tests for post type and applies conditional markup, handels post type media and calls \'the_content\' specific to each case. */ ?>

    <? fuction_attachements();
    /* do conditional formatting with post attachments ie images, media & docs all filtered through the_content  */ ?>
    <?php /* End Loop */ ?>
非常感谢您的建议,谢谢。

1 个回复
SO网友:Milo

您想在上向筛选器队列添加筛选器the_content:

add_filter(\'the_content\', \'anything\');
然后调用WordPress核心apply_filters 在内部the_content 函数运行队列中的所有筛选器:

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( \']]>\', \']]&gt;\', $content );
    echo $content;
}

结束

相关推荐

Apply_Filters函数及其变量的说明

我正在学习如何使用PHP构建html表单,方法是以“simplr表单注册”插件为例。我正在查看以下代码:$form .= apply_filters(\'simplr-reg-instructions\', __(\'Please fill out this form to sign up for this site\', \'simplr-reg\')); 您能解释一下这里发生了什么吗?函数的作用是什么,为什么需要“simpr reg指令”和“simpr reg”?为什么这句话不能简单地说:$