WordPressで非公開や下書きのページを親ページとして選択できるようにする方法

WordPressで非公開や下書きのページを親ページとして選択できるようにする方法

WordPressで非公開や下書きのページを親ページとして選択できるようにする方法

WordPressの固定ページでは、ページ属性で「親ページ」を選択することで、ページに階層を持たせることができます。

例えば、”お問い合わせ”と”お問い合わせ完了”で親子関係を持たせることで、お問い合わせは”/contact”、お問い合わせ完了は”/contact/thanks”といったURL構造にすることが可能です。

ただ、この親ページの選択肢には、デフォルトではすでに公開済みのページしか表示されません。非公開や下書きのページは親ページとして選択することができないようになっています。

運用開始しているサイトにページを追加する場合、非公開で作成しクライアントのチェックが完了してから公開、という流れになることは多いかと思います。そうなると、非公開ページを親ページとして選択できないと不都合が出てくるケースもあります。

そんな時のために、まだ公開されていないページを親ページとして選択できるようにする方法をご紹介したいと思います。

公開されていないページを親ページとして選択できるようにする方法

※今回ご紹介する方法は、使用するpage_attributes_dropdown_pages_argsフックのドキュメントにも投稿されていますが、ブロックエディタでは機能しませんでした。Classic Editorが導入されている環境でしか機能しませんので悪しからず。

適用しているテーマのfunctions.phpに以下コードを追記します。まだ公開されていないページも、編集画面とクイック編集で親ページとして選択できるようになります(quick_edit_dropdown_pages_argsはクイック編集用のフックです)。

function my_dropdown_pages($dropdown_pages_args) {
  $dropdown_pages_args['post_status'] = array('publish', 'future', 'draft', 'pending', 'private'); //選択を許可する公開ステータス
  return $dropdown_pages_args;
}
add_filter('page_attributes_dropdown_pages_args', 'my_dropdown_pages');
add_filter('quick_edit_dropdown_pages_args', 'my_dropdown_pages');

上記の例ではすべての公開ステータスを親ページの選択肢に表示するようにしています。必要ないステータスは削除してください。

publish 公開済み
future 予約済み
draft 下書き
pending 承認待ち
private 非公開

あとがき

クラシックエディタ限定の方法なので、かなり限定的なケースでしか活用できないかもですね。そもそもページを公開してから親子関係を設定すれば良いので、さらに活用できるシーンは少ないですかね。

念のための備忘録でございました。

この記事が気に入ったら
いいね!してね♪

Twitter で

コメントを残す

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