[WordPress] 特定の固定ページの子ページを表示させない

検索しても日本語のページは出てこなかったので、丁度いいしおぼえがきとして書いておく。

自分の場合、LPのように長い1ページの中がセクションに分かれているフロントページのそれぞれのセクションを、そのページの子ページとして作成するようなことがある。
カスタムフィールドにするにはなんかボリューム多いね、とか、後からもしかしたら別ページにするかもしれない、という場合だけど。

それで、子ページの方はURL叩いても見えないようにしたいという動機から、これらを表示させないようにした。

この場合、「ホーム」という固定ページ( ID = 2 )の子ページを表示させない。

/* functions.php の記述 */

// ホームの子ページを表示させない
function my_exclude_home_child( $query ) {
    if ( $query->is_page() && $query->is_main_query() ) {
        $query->set( 'post_parent__not_in', array( 2 ) );
    }
}
add_action( 'pre_get_posts', 'my_exclude_home_child' );

以上だけど。

この中のパラメータである post_parent__not_in は、日本語のCodexの中には書かれていなかったが、英語版には書かれている。
https://codex.wordpress.org/Class_Reference/WP_Query
https://developer.wordpress.org/reference/classes/wp_query/

この辺を調べていると、パラメータを日本語でまとめている方がいらしたのでリンクしておく。
https://sole-color-blog.com/blog/265/

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です