WordPress関数リファレンス

スクリーンのID、投稿タイプ、タクソノミーなど取得できる

get_current_screen

関数の概要

Codexには以下のように書かれています。

This function returns an object that includes the screen’s ID, base, post type, and taxonomy, among other data points

訳せない・・・!!スクリーンのID、base(どう訳せばいいかわからない)、投稿タイプ、タクソノミー、その他のデータポイントが入ったオブジェクトが返ってくる、みたいなことが書いてありそうなんですが・・・訳せる方がいらっしゃいましたらご教示いただけますと嬉しいです。

使用できるパラメーター

なし

get_current_screenの動作確認方法

どんな値が取得できるのかを「検証のため」確認します。開発環境などお持ちでしたら「functions.php」に以下のコードを書きます。(※本番環境では書かないようにします。あくまで自分で確認するためだけに書きましょう)

add_action( 'pre_get_posts', 'get_current_screen_data', 1 );
function get_current_screen_data( $query ) {
 if ( $query->is_main_query() ) {
  $screen = get_current_screen();
  var_dump($screen);
 }
}

コードを書いたら、どんなデータが取得できるのか動作確認をしましょう。

投稿一覧で動作確認をしよう

WordPressの管理画面から「投稿」の一覧ページを選択すると、以下のデータが取得できました。

object(WP_Screen)#5934 (17) { ["action"]=> string(0) "" ["base"]=> string(4) "edit" ["columns":"WP_Screen":private]=> int(0) ["id"]=> string(9) "edit-post" ["in_admin":protected]=> string(4) "site" ["is_network"]=> bool(false) ["is_user"]=> bool(false) ["parent_base"]=> NULL ["parent_file"]=> NULL ["post_type"]=> string(4) "post" ["taxonomy"]=> string(0) "" ["_help_tabs":"WP_Screen":private]=> array(0) { } ["_help_sidebar":"WP_Screen":private]=> string(0) "" ["_screen_reader_content":"WP_Screen":private]=> array(0) { } ["_options":"WP_Screen":private]=> array(0) { } ["_show_screen_options":"WP_Screen":private]=> NULL ["_screen_settings":"WP_Screen":private]=> NULL }

カスタム投稿タイプの一覧ページだとこうなる

次に、例として私が作ったカスタム投稿タイプ「WordPress関数リファレンス」の一覧ページを選択すると、以下のデータが取得できました。

object(WP_Screen)#5934 (17) { ["action"]=> string(0) "" ["base"]=> string(4) "edit" ["columns":"WP_Screen":private]=> int(0) ["id"]=> string(23) "edit-function_reference" ["in_admin":protected]=> string(4) "site" ["is_network"]=> bool(false) ["is_user"]=> bool(false) ["parent_base"]=> NULL ["parent_file"]=> NULL ["post_type"]=> string(18) "function_reference" ["taxonomy"]=> string(0) "" ["_help_tabs":"WP_Screen":private]=> array(0) { } ["_help_sidebar":"WP_Screen":private]=> string(0) "" ["_screen_reader_content":"WP_Screen":private]=> array(0) { } ["_options":"WP_Screen":private]=> array(0) { } ["_show_screen_options":"WP_Screen":private]=> NULL ["_screen_settings":"WP_Screen":private]=> NULL }

こうやって使いました

私は取得できるデータの中から「スクリーンのID」を「manage_this-screen-id_sortable_columns」のフックを使う際に利用しました。(管理画面の投稿一覧などで、独自で追加したカラムに昇順・降順などソート機能を実装するときに利用するフックです)

apply_filters( "manage_{$this->screen->id}_sortable_columns", array $sortable_columns )

「$this->screen->id」に入れる値は、投稿なら「edit-post」で、例として私が作ったカスタム投稿タイプ「WordPress関数リファレンス」なら「edit-function_reference」が入ります。

参考リンク

get_current_screen

manage_this-screen-id_sortable_columns

著者:bouya Imamura

WordPress関数リファレンス TOP