0

高度なカスタム フィールド (ACF) の「リピーター」領域と、いくつかのカスタム投稿を取り込むためのコードを含む静的ページがあります。

ページの上部にこのコードがあります。

<?php get_header(); the_post(); query_posts('post_type=team_profiles') ?>

このままにしておくと、自分の投稿は表示されますが、ACF からのデータは表示されません。次のセクションを取り出すと:

query_posts('post_type=team_profiles')

ACF フィールドは表示されますが、投稿データは表示されません。

私の質問は、第一になぜこれが起こっているのか、第二にどうすれば両方を同じページに表示できるのですか?

私の静的ページの ACF と POSTS のコードは次のとおりです。

ACFリピーターフィールド

    <?php if( get_field('about_sections') ): ?>

    <?php while( has_sub_field('about_sections') ): ?>

    <div class="asset image">

    <?php the_sub_field('about_section'); ?>

    </div> <!-- asset image -->

    <?php endwhile; ?>

    <?php endif; ?>

投稿

    <?php if ( have_posts() ) : ?>

    <?php while ( have_posts() ) : the_post(); ?>

    <?php get_template_part( 'content-single-team-profile', get_post_format() ); ?>

    <?php endwhile; ?>

    <?php endif; ?>
4

1 に答える 1

0

これは、get_posts() を呼び出すときにメイン クエリがオーバーライドされるために発生します。次のいずれかを実行できます。

  • 静的ページから必要なもの (リピーター フィールドの値など) をすべて取得した後、get_posts() を呼び出します。

また

  • 静的ページから値を取得するにwp_reset_query() を呼び出します。これにより、そのページのメイン クエリの元のパラメータが設定されます。

これを見てください:http://codex.wordpress.org/Function_Reference/wp_reset_postdata

これらは簡単な解決策です。より複雑で優れたものには、グローバル変数に依存する代わりに、WP_Query オブジェクトを作成し、その投稿を反復処理することが含まれます。

于 2013-10-02T14:14:29.567 に答える