WordPress 固定ページの投稿ステータスについて、調べてみました。
wp-includes/post.php
を調べてみると、
publish:公開
future:予約投稿
draft:下書き
pending:レビュー待ち
private:非公開
trash:ゴミ箱
があるようです。この他、内部データとして、auto-draft:自動保存、inherit:投稿リビジョン、がありました。(register_post_status
を使うと、独自のステータスが作成できるようです。)
公式フォーラムで質問のあった、固定ページの親階層候補に、公開以外のステータスも追加する場合のコードです。
wp-admin/includes/meta-boxes.php
を読むと、page_attributes_dropdown_pages_args
というフィルターが用意されています。なので、このフィルターにフックする関数を作成すれば良いでしょう。(functions.php に追加すれば OK)
add_filter('page_attributes_dropdown_pages_args', 'allow_private_draft'); function allow_private_draft($args) { $args['post_status'] = 'publish,private,draft'; return $args; }
初期状態では publish
のみが対象ですが、上記のように書き換えると、publish,private,draft
が対象になります。こうすることで、親ページ非公開、子ページ公開、といった使い方が可能になります。(ただしパンくずリストやメニューの表示は変になるかもしれません)