web-dev-qa-db-ja.com

投稿のループ後のページコンテンツの表示

これはおそらく簡単なことですが、静的なページのコンテンツが投稿のリストの後に表示されるのに問題があるのです。

スライダーとして投稿を表示する名前付きページテンプレートを使用しています。このスライダーの下にページの静的コンテンツを表示します。

私のテンプレートでこれを持っている静的なコンテンツを表示するには:

<!-- display page content (if any) before blog posts -->
            <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

            <div <?php post_class(); ?>>
            <h1 class="title"><?php the_title(); ?></h1>

                <div class="entry">
                <?php the_content(); ?>

                </div><!-- /.entry -->
               <div class="fix"></div>

            </div><!-- /.post -->
            <?php endwhile; endif; ?>
<!-- end of page content -->

スライダーのクエリ/ループの前にこのコードを使用すると、静的コンテンツは問題なく表示され、スライダーには投稿が表示されます。ただし、スライダーの投稿の後にこのスニペットを使用すると、投稿の一覧にクエリが設定されているため、スライダーの投稿の一覧が表示されます。

基本的に、スライダーのポストの後に静的コンテンツを表示するには、何らかの方法で現在の静的ページコンテンツにクエリをリセットする必要があります。

1
wambrose

wp_reset_query(); または$wp_queryの結果を$my_query = new WP_Query(); if( $my_query->have_posts();などに保存することを検討してください。コーデックスページを見てください。

3
kaiser

スライダーは、のカスタムループから作成する必要があります。 $my_query = new WP_Query()の使用を含む、いくつかのオプションがありますが、一般的に言って、私の好みは$my_query = get_posts()を使用することです。

スライダーコードを投稿した場合は、それを適切にカスタマイズできます。

2
Chip Bennett

ありがとうございました。

デフォルトのデータを$postに保持するためにスライダーコードがカスタムクエリ変数を持つことが理想的であることを私は理解していますが、スライダーは私の親テーマによって処理されるので変更したくありません。代わりに私はこれをしました:

wp_reset_queryは何もしていないようですが、以下のものがうまくいきました...

現在の静的ページを取得するために、2番目のループの前(スライダーの後)にこれを追加しました。

$my_query = new WP_Query( 'paged=' . get_query_var( 'page' ) );

while ($my_query->have_posts()) { $my_query->the_post();
0
wambrose