如何更改Wordpress WP_Post post_content并通过插件渲染?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (31)

试图通过插件在Wordpress中建立一个动态页面。已经注册了一项行动如下:

add_action('the_post', 'createDynamicPage');

工作并按预期调用函数。然后收到WP_Post对象并检查它是这样的:

public static function createDynamicPage(WP_Post $post)
{
    if (is_page('my-dynamic-page')) {
        // Do the processing etc
        $post->post_title = 'My New Title';
        $post->post_content = $whatIProcessedAbove;
    }
    return $post;
}

post_title属性的更改反映在页面中,但内容不是。

所以我想出的解决方案是修改WP_Post对象,将其传递给对象,wp_update_post()然后强制页面重新加载。

我怎样才能让我对post_content所做的改变立即显现?

提问于
用户回答回答于

我实际上需要使用过滤器

首先,注册过滤器the_content

add_filter('the_content', 'createDynamicContent');

现在,修改网页中的内容:

public static function createDynamicContent(string $content)
{
    if (is_page('my-dynamic-page')) {
        // Do the processing etc
        $content = $whatIProcessedAbove;
    }
    return $content;
}

扫码关注云+社区

领取腾讯云代金券