我将帖子内容保存到帖子元素中,我想检索它而不是原始帖子内容,这样当我调用the_content()时,post meta中的数据看起来不是实际的帖子数据。
function test(){
$post_meta = post meta data here ....
echo apply_filters('the_content', '$post_meta');
}
add_filter('the_content', 'test');
我收到此错误
Fatal error: Maximum function nesting level of '100' reached
错误确实有意义,但我怎样才能实现我想做的事情,任何想法?
答案 0 :(得分:4)
更新:在我的头撞到墙壁之后,这是我能想到的最好的方法来挂钩the_content并在自定义回调中使用其过滤器,而不会陷入无限循环。
答案非常简单,我觉得以前没有考虑过这个问题很愚蠢:
function test($content)
{
remove_action('the_content', 'test'); //DISABLE THE CUSTOM ACTION
$post_meta = post meta data here ....
$cleaned_meta = apply_filters('the_content', $post_meta);
add_action('the_content', 'test'); //REENABLE FROM WITHIN
return $cleaned_meta;
}
add_action('the_content', 'test');
我相信你现在已经找到了另一个解决方案,但是,我希望这对你将来遇到的任何问题都有帮助。
答案 1 :(得分:0)
我认为您希望在调用the_content()
之前添加过滤器。你可能想要这样的东西。
function modify_content() {
global $post;
$post_meta = 'testing';
$post->post_content = $post_meta;
}
add_action('wp_head', 'modify_content');
这将允许您修改帖子的内容,并仍然通过the_content()
上的过滤器运行它。虽然这只适用于单个帖子/页面。如果您想要更改存档页面,则必须找到另一个挂钩。