尝试通过POST更改POST_CONTENT

时间:2012-07-27 作者:Mathieu Dumoulin

我试图通过挂接到the_post 但问题是,无论我在那里修改什么,都不能真正正确地应用。

问题似乎来自这样一个事实query->setup_postdata 创建$pages 变量,并在调用the_post 钩所以无论我对$post 对象不反映在页面中。

再往前走,似乎get_the_content 调用the_content 筛选器使用中的内容$pages 而不是$post->post_content. 因此,如果我更改了帖子的内容,它将无法正确输出,因为WordPress基于其他内容来打印内容。

现在如果我the_content 使用简单的挂钩机制过滤并替换文本,例如:

public function wordpress_hooks_the_title($title){
    if(get_the_ID() == 4){ return \'test title\'; }
    return $title;
}

public function wordpress_hooks_the_content($content){
    if(get_the_ID() == 4){ return \'test content\'; }
    return $content;
}
它对内容很有效,但标题会覆盖页面中的许多其他标题,例如菜单中的标题,即使我调用get_the_ID() 这很好,因为电流$post 没问题。

所以我一直在努力找到正确的方法,而不是半途而废。我想使用the_post 仅限或the_content/the_title 只有但只有一半在每种情况下都能正常工作。

正确的方法是什么?

1 个回复
SO网友:vmassuchetto

看来你真的在找the_content filter.

add_filter(\'the_content\', \'modify_content\');
function modify_content($content) {
    global $post;
    if ($post->ID != $desired_id)
        return $content;

    $modified_content = /* modify content here */;
    return $modified_content;
}

结束

相关推荐

associate posts to a page

我创建了一个主题,并为该主题创建了一个页面,现在我想将帖子关联到该页面。我读了这篇文章:http://codex.wordpress.org/Pages查看“页面和模板示例”一节下的代码:<div id=\"content\" class=\"widecolumn\"> <?php if (have_posts()) : while (have_posts()) : the_post();?> <div class=\"post\"> &l