• 解決済 boron

    (@hidehasi)


    すべての固定ページのメインループをスラッグが”news”というカスタム投稿にしたいです。

    それで、functions.phpに以下を入れましたが、固定ページが全部404にリダイレクトされるようになります。

    add_action( 'pre_get_posts', function($q) { 
        if( !is_admin() && $q->is_main_query() && is_page()) {
            $q->set('post_type', array('news') );
        }
    });

    色々調べたのですが同じ症状は検索では出てこず困っています。。ちなみにpre_get_postsを使ったのは初めてです。何でも結構ですので助言いただけると助かりますm(_ _)m

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんばんは。

    pre_get_posts は単一の固定ページのリクエスト(ページテンプレート)に対するクエリを変更するのに用いるべきではありません。なぜなら ‘is_page’、’is_singular’、’pagename’ および他のプロパティ(pretty パーマリンクを使っているかどうかによる)が parse_query() メソッドによってセットされた後だからです。詳しくは クエリ概要 を見てください。

    https://プラグイン API/アクションフック一覧/pre get posts

    とありますので、固定ページには使えないのではないでしょうか?

    • この返信は1年、 7ヶ月前にarborvitae666が編集しました。
    トピック投稿者 boron

    (@hidehasi)

    さっそくご返信いただきありがとうございました。確かにおっしゃるように固定ページでは使えないもののようですね。。今回のような用途には適さないことがわかりました。

    教えていただきましたリンクを辿っていきますとこちらのページに固定ページ内でカスタム投稿のアーカイブ表示のやり方が掲載されていましたので、そちらのやり方に変更しました。誠にありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「固定ページのメインループをカスタム投稿にしたら404に」には新たに返信することはできません。