WordPress で作成されたカスタム投稿タイプなどを全て取得する方法

WordPress で投稿やページやカスタム投稿の公開時に処理を実行するを読んで頂き、@wokamoto さんと @jim0912 さんからアドバイスを頂きました。

まず @wokamoto さんから教えて頂いた以下のコードです。

1
2
3
global $wp_post_type_names;
$wp_post_type_names = array_keys($wp_post_types);
print_r($wp_post_type_names);

このコードを実行すると以下のような結果を取得できます。

1
2
3
4
5
6
7
8
Array
(
    [0] => post
    [1] => page
    [2] => attachment
    [3] => revision
    [4] => nav_menu_item
)

WordPress そのものに設定されている投稿タイプを取得することができます。このコードは以下のページに掲載されています。

次に @jim0912 さんから教えて頂いた方法は get_post_types() という関数を使う方法です。こちらは以下のように使うそうです。

1
2
$postType = get_post_types(Array('public' => true));
print_r($postType);

このコードを実行すると以下のような結果を取得できます。

1
2
3
4
5
6
Array
(
    [post] => post
    [page] => page
    [attachment] => attachment
)

実用的な投稿タイプを取得することができました。記事投稿時に Twitter に投稿をツイートするための投稿タイプなどを取得する場合はこちらの関数が向いているのかもしれません。この関数の詳細は以下のページを参考にしてください。

register_post_type() で作成したカスタム投稿タイプはこれで取得できます。実行のタイミングによっては取得できないこともありましたので、タイミングに注意しましょう。

コメント

コメントは受け付けていません。