【WordPress】ページ属性の親ページを選択する際、トップレベル(親を持たない)のページのみを表示する
WordPress

【WordPress】ページ属性の親ページを選択する際、トップレベル(親を持たない)のページのみを表示する

固定ページが少なければよいのですが、大量になってくるとセレクトボックスで親ページを選ぶのにも苦労すると思います。例えば都道府県・市町村のように親子関係の固定ページが大量にあると、セレクトボックスには市町村の固定ページも表示されてしまい、該当の都道府県を選びたいだけなのに延々とスクロールしなければならない、みたいな状況です。

そんなときは以下のフィルターを使用してトップレベル(親を持たない)のページのみを表示させましょう。

functions.php

// 編集ページでの親ページ選択セレクトボックス
add_filter( 'page_attributes_dropdown_pages_args', function( $dropdown_args, $post ) {
  if ( $post->post_type == 'post' ) {
    $dropdown_args['depth'] = 1;
  }
  return $dropdown_args;
}, 10, 2 );

// 一覧ページ > クイック編集での親ページ選択セレクトボックス
add_filter( 'quick_edit_dropdown_pages_args', function( $dropdown_args ) {
  if ( $dropdown_args['post_type'] == 'post' ) {
    $dropdown_args['depth'] = 1;
  }
  return $dropdown_args;
} );
~~ END ~~