概要
get_post_type_labelsフィルタは、WordPressのカスタム投稿タイプに関連するラベルを取得・変更するためのフィルタです。このフィルタを使用することで、特定の投稿タイプの名前や説明をカスタマイズすることができ、ユーザーインターフェースの見た目やユーザビリティを向上させることが可能です。特に、管理画面で表示されるラベルを変更したい場合に役立ちます。以下のような機能を実装する際によく使われます。
- カスタム投稿タイプのラベルのローカライズ。
- 特定の条件に応じた投稿タイプラベルの動的変更。
- 投稿タイプのタイトルや説明を明確にするためのカスタマイズ。
- プラグインの設定画面でのラベル表示のカスタマイズ。
- 特定のユーザー権限に基づく表示ラベルの変更。
- テーマ独自のカスタム投稿タイプのラベル設定。
- プラグイン内でのエラーメッセージのカスタマイズ。
- 管理ダッシュボードのユーザビリティ改善。
構文
add_filter('get_post_type_labels', 'my_custom_post_type_labels');
パラメータ
array $labels: 投稿タイプのラベルの配列。
戻り値
array: 変更されたラベルの配列。
関連する関数
使用可能なバージョン
WordPress 2.9以降
コアファイルのパス
wp-includes/post.php
この関数のアクションでの使用可能性
| アクション | 使用可能性 |
|---|---|
| mu_plugin_loaded | |
| registered_post_type | 〇 |
| plugins_loaded | |
| wp_roles_init | |
| setup_theme | |
| after_setup_theme | |
| set_current_user | |
| init | |
| register_sidebar | |
| wp_loaded | |
| send_headers | |
| parse_query | |
| pre_get_posts | |
| wp | |
| template_redirect | |
| get_header | |
| wp_head |
サンプルコード
サンプルコード 1
add_filter('get_post_type_labels', 'custom_post_type_labels');
function custom_post_type_labels($labels) {
$labels->name = 'カスタム投稿';
$labels->singular_name = 'カスタム投稿';
return $labels;
}
このサンプルコードは、カスタム投稿タイプの名前を「カスタム投稿」に変更しています。
サンプルコード 2
add_filter('get_post_type_labels', 'change_custom_post_type_labels');
function change_custom_post_type_labels($labels) {
$labels->add_new = '新しいカスタム投稿を追加';
$labels->edit_item = 'カスタム投稿を編集';
return $labels;
}
このサンプルコードでは、カスタム投稿の「新規追加」と「編集」のラベルをカスタマイズしています。
サンプルコード 3
add_filter('get_post_type_labels', 'customize_custom_post_labels');
function customize_custom_post_labels($labels) {
$labels->menu_name = '特別な投稿';
return $labels;
}
このサンプルコードは、カスタム投稿タイプのメニュー名を「特別な投稿」に変更します。
サンプルコード 4
add_filter('get_post_type_labels', 'modify_custom_labels');
function modify_custom_labels($labels) {
if ('custom_post_type' === get_post_type()) {
$labels->name_admin_bar = 'カスタムバー';
}
return $labels;
}
このサンプルコードは、管理バーに表示されるカスタム投稿タイプの名前を「カスタムバー」に変更します。
サンプルコード 5
add_filter('get_post_type_labels', 'custom_labels_for_specific_user_role');
function custom_labels_for_specific_user_role($labels) {
if (current_user_can('editor')) {
$labels->edit_item = 'カスタム投稿を編集 (エディター用)';
}
return $labels;
}
このサンプルコードは、エディター権限を持つユーザーのために特別な編集ラベルを設定しています。