びぼーろく。
親ページとしてのみ使いたくて、パンくずリストには表示したくない類のページを実現するのに、親ページを「非公開」にしてpost_statusで条件分岐させる…っていうのをやったんだけど、ローカルではうまくいったのに、サーバーにデプロイすると非公開ページにぶら下がるページがすべて表示されない事態になった。
原因はよく分からないけど、結局WP_Queryで取得する際にpost_statusに明確に指定して取得したらいけた。
サンプルコード
とある関数の引数に$privateを追加し、$privateがtrueだったら、非公開も取得するようにした。(デフォルトはfalse)
:
$status_param = array( 'publish' );
if ( $private ) {
$status_param = array( 'publish', 'private' );
}
$wp_query = new WP_Query();
$child_pages = $wp_query->query(
array(
'post_type' => 'page',
'post_parent' => $post_id,
'nopaging' => true,
'post_status' => $status_param,
)
);
:
なぜローカルではいけたのだろう…。