1

1つのページに複数の投稿タイプをアーカイブできるかどうかを調べようとしています。投稿タイプごとに個別のアーカイブが正常に機能していますが、両方をアーカイブする別のページも必要です。私はまだWPに慣れていないので、それが可能かどうかはまったくわかりませんが、これまで行ってきたことは正しく機能していません。

    <?php query_posts('post_type=type01'); ?>

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

    <a href="<?php the_permalink(); ?>">
    <div class="type01-div" data-value="<?php
$date = DateTime::createFromFormat('dnY', get_field('type01_date_select'));
echo $date->format('dnY');
?>">STUFF HERE</div>
    </a>

    <?php endwhile; endif; ?>


    <?php query_posts('post_type=type02'); ?>

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

    <a href="<?php the_permalink(); ?>">
    <div class="type02-div" data-value="<?php
$date = DateTime::createFromFormat('dnY', get_field('type02_date_select'));
echo $date->format('dnY');
?>">STUFF HERE</div>
    </a>

    <?php endwhile; endif; ?>

したがって、「type01」からの投稿はすべて表示されますが、「type02」からの投稿は表示されません。両方をアーカイブすることは可能ですか?ただし、各投稿タイプは異なるdivクラスにラップされるため、別々のループで。

4

1 に答える 1

1

次のループのためにクエリをリセットする必要があります。これをループ間に追加します。

<?php wp_reset_query(); ?>

このような同様のページがあり、このコードを使用してそれを行いました:

<h2>type01</h2>
<?php
$args = array(
    'post_type' => array( 'type01' ),
    'order' => 'asc',
    'orderby' => 'title',
    'posts_per_page' => -1
);

$loop = new WP_Query( $args );?>
<?php while ( $loop->have_posts() ) : $loop->the_post();?>

        <li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></li>

<?php endwhile; ?>

<?php wp_reset_query(); ?>

</ul>

<h2>type02</h2>
<ul>
<?php
$args = array(
    'post_type' => array( 'type02' ),
    'order' => 'asc',
    'orderby' => 'title',
    'posts_per_page' => -1
);

$loop = new WP_Query( $args );?>
<?php while ( $loop->have_posts() ) : $loop->the_post();?>

        <li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></li>

<?php endwhile; ?>

詳細については、このリンクを確認してください: http://codex.wordpress.org/Function_Reference/wp_reset_query

于 2013-02-19T11:50:53.347 に答える