web-dev-qa-db-fra.com

Remplacez "the_content" de la publication par la valeur ACF

J'essaie de remplacer le the_content de l'article par la valeur du champ article_text d'ACF. J'ai réussi à le réaliser avec la méthode suivante:

  $postid = get_queried_object_id();

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

  wp_update_post( $my_post );

  the_content();

Mais j'ai un petit problème avec cela: quand je crée post, the_content ne reçoit pas automatiquement la valeur de ACF article_text. Je dois rafraîchir le navigateur plusieurs fois pour voir ce changement. Lorsque je prévisualise le message sans le publier, je ne vois pas du tout the_content.

Ma question: existe-t-il un moyen plus efficace de voir le contenu immédiatement?

La raison pour laquelle je veux afficher the_content au lieu de article_text est due à plusieurs plugins non compatibles avec ACF.

1
ERDFX

Au lieu de mettre à jour le contenu de l'article, vous pouvez le filtrer à l'aide du filtre the_content.

add_filter( 'the_content', 'wpse241388_use_acf_field' );
function wpse241388_use_acf_field( $content ) {
    return get_field( 'article_text' );
}

Mettre à jour

Pour postuler uniquement à votre type de poste 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;
}

Références

4
Pat J