functions.php内でカスタム投稿タイプごとに設定を追加したいときに、ループで一気に書いてしまいたいことがあると思います。
このとき、get_post_types()
を使いたくなるのですが、このままでは動きません。
なぜならfunctionsはinitフック(register_post_typesなどを実行するタイミング)よりも早く呼び出されるため、functions内にベタ書きしてもwordpressデフォルトのpost_typeしか取得できないのです。
これを回避するためにはadd_action(‘init’)を使って以下のように書く必要があります。
add_action('init','echo_custum_post_types'); function echo_custum_post_types(){ $args = array( 'public' => true, '_builtin' => false ); $post_types = get_post_types( $args ); echo var_dump($post_types); }
参考
https://nelog.jp/get_custum_post_types
https://webtomoblg.net/wp-work/