web-dev-qa-db-ja.com

カスタム投稿タイプのコンテンツのget_template_partが機能しない

私は Textorial のカスタム投稿タイプがあり、必要なテンプレートファイルがあります。

  1. textorial-type.php
  2. single-textorial.php
  3. content-textorial.php

アイデアは投稿タイプのためのカスタムレイアウトを持ち、それらを引き込むために無限スクロールを使うことです。だからこそ私はcontent.phpを使っています。私は無限スクロールをセットアップし、通常の投稿でうまくテストしました。しかし、index.phpにカスタム投稿タイプを取り込む場合:

<div id="content">
<?php 
    while (have_posts()) : the_post();
        get_template_part( 'content', 'textorial' );                    
    endwhile;   
?>
</div>

...何も表示されません。エラーもありません。しかしsingle-textorial.phpも同じ方法を使用しており、その内容は表示されています。何か案は?

アップデート!

front.page.php上:

<?php $args = array('post_type' => 'textorial');
                $query = new WP_Query( $args );
                while (have_posts() ) : the_post();
                    get_template_part( 'content', 'textorial' );
                endwhile; 
              ?>

しかし今では通常の投稿しか表示されません。

1
Laniakea

あなたのコードにはいくつかの問題があります。

  • あなたのカスタムクエリにあなたのループを設定する必要があります。現時点では、メインクエリに設定されています

  • WP_Queryのすべてのインスタンスを使ってpostdataを常にリセットする必要があります

あなたのコードはこのようなものであるべきです

<?php $args = array('post_type' => 'textorial');
$query = new WP_Query( $args );
while ($query->have_posts() ) : $query->the_post();

    get_template_part( 'content', 'textorial' );

endwhile; 
wp_reset_postdata(); ?>
5
Pieter Goosen