サポート » 使い方全般 » メインクエリがおかしい

  • 解決済 toakts0024

    (@toakts0024)


    度々失礼します。

    今回、 投稿タイプごとにアーカイブを統一しようと考え、archive-投稿タイプ名.phpを作成し、taxonomy.phpでget_template_partを使用し振り分けを行いました。

    以下はtaxonomy.phpのソースになります。

    <?php
    	$tax = get_query_var('taxonomy'); //今見てるアーカイブページのタクソノミー名を取得
    	$getPostType = get_taxonomy( $tax );
    	$postType = $getPostType->object_type[0]; //タクソノミーに紐付いている投稿タイプのスラッグを取得
    	if ( $postType == 'plan' ) {
    		get_template_part( 'archive-plan' );
    	} else {
    		get_template_part( 'index' );
    	}
    ?>

    ここで問題が起きたのですが、テンプレートは希望通りの動き方をしているのですが、ループ文が機能していませんでした。

    フォーラムで質問したところ、taxonomy.phpでget_template_partの前に
    var_dump(have_posts());を使用してみたら、bool(false)が表示され、テンプレートを読み込む前のメインクエリーに問題があるという事が分かりました。

    調べてみても、自分の問題に当て嵌まる解決法が見つけられず質問にいたりました。

    どうすれば問題なくget_template_partでarchive-投稿タイプ名.phpを使用する事が出来るようになるのでしょうか?

    メインクエリーの問題とはどうやって解決すればいいのでしょうか?

    どうかよろしくお願いします。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • 的外れなことかもしれませんが、カスタム投稿タイプを登録するときに has_archivetrue にしてあるでしょうか。

    トピック投稿者 toakts0024

    (@toakts0024)

    ご返事ありがとうございます。
    Custom Post Type UIでカスタム投稿タイプを作成し、has_archiveをtrueにしております。

    taxonomy.phpを読み込んだ時点でhave_posts()がfalseされているような状態です。
    どのような原因が考えられるのでしょうか。

    カスタム投稿タイプ plan の投稿ではない普通の投稿は作成済みでしょうか。もし未だなら、試しに普通の投稿を一つ作って have_posts() が変わらないか確認してみてください。

    トピック投稿者 toakts0024

    (@toakts0024)

    カスタム投稿ではない最初から搭載されている普通の投稿で同一カスタム分類で投稿したところ、have_posts()がtrueになりました。
    他のカスタム投稿で、試してみてもtrueが返されています。
    カスタム投稿タイプ:planのみfalseが返されている状況です
    これはカスタム投稿タイプ:planの設定か何かがおかしいという事になるのでしょうか?

    これはカスタム投稿タイプ:planの設定か何かがおかしいという事になるのでしょうか?

    そのようですね。もしくは、plan だけ、カスタム分類が違っているのかもしれません。

    トピック投稿者 toakts0024

    (@toakts0024)

    なるほど!
    ありがとうございます!
    原因が分かっただけでも大きな前進です!
    もう少し調べて、最悪カスタム投稿タイプ:planを作り直してみることも考えてみます!

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「メインクエリがおかしい」には新たに返信することはできません。