将POST的“the_content”替换为ACF值

时间:2016-10-03 作者:ERDFX

我尝试替换post的the_content 使用来自ACF字段的值article_text. 我通过以下方法实现了这一目标:

  $postid = get_queried_object_id();

  $my_post = array(
      \'ID\'           => $postid,
      \'post_content\' => get_field(\'article_text\'),
  );

  wp_update_post( $my_post );

  the_content();
但我有一个小问题:当我创建帖子时,the_content 不会自动从ACF获取值article_text. 我必须刷新浏览器几次才能看到更改。当我预览未发布的帖子时,我看不到the_content 完全

我的问题是,有没有更有效的方法可以直接查看内容?

我想显示的原因the_content 而不是article_text 是因为有几个对ACF不友好的插件。

1 个回复
最合适的回答,由SO网友:Pat J 整理而成

您可以使用the_content 滤器

add_filter( \'the_content\', \'wpse241388_use_acf_field\' );
function wpse241388_use_acf_field( $content ) {
    return get_field( \'article_text\' );
}
更新以仅应用于您的article 岗位类型:

add_filter( \'the_content\', \'wpse241388_use_acf_field\' );
function wpse241388_use_acf_field( $content ) {
    if ( is_singular( \'article\' ) ) {
        $content = get_field( \'article_text\' );
    }
    return $content;
}
参考文献the_content filter
  • is_singular()
  • 相关推荐