如果不发布大量代码,这有点困难,但我的问题是:过滤的好处是什么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 */ ?>
非常感谢您的建议,谢谢。
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( \']]>\', \']]>\', $content );
echo $content;
}