概要
get_post_format_slugsフィルタは、WordPressの投稿フォーマットのスラッグ一覧を取得する際に利用されます。このフィルタを使用すると、投稿フォーマットの名前やスラッグをカスタマイズし、テーマやプラグインでの柔軟な表示を可能にします。以下は、get_post_format_slugsフィルタがよく使われる機能の例です。
- 投稿フォーマットのカスタムスラッグを追加する
- 投稿フォーマットのデフォルトスラッグを変更する
- 特定の投稿タイプに対するスラッグを変更する
- 投稿フォーマットの表示に関する条件を外部から制御する
- 投稿フォーマットに基づくカスタムクエリを作成する
- ビジュアルエディタのカスタムボタンをスラッグに基づいて表示する
- 特定の条件下でスラッグをフィルタする
- ポートフォリオなど特定の目的のために投稿フォーマットを拡張する
構文
add_filter('get_post_format_slugs', 'my_custom_post_format_slugs');
パラメータ
array $slugs:デフォルトの投稿フォーマットスラッグの配列
戻り値
array:カスタマイズされた投稿フォーマットスラッグの配列
関連する関数
使用可能なバージョン
- このフィルタは、WordPress 3.1以降のバージョンで利用可能です。
コアファイルのパス
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_format_slugs', 'add_custom_format_slugs');
function add_custom_format_slugs($slugs) {
$slugs[] = 'custom-format';
return $slugs;
}
このコードは、デフォルトの投稿フォーマットスラッグにcustom-formatを追加します。
サンプル2: 特定の投稿フォーマットを変更する
add_filter('get_post_format_slugs', 'change_post_format_slug');
function change_post_format_slug($slugs) {
$key = array_search('aside', $slugs);
if ($key !== false) {
$slugs[$key] = 'custom-aside';
}
return $slugs;
}
このコードは、既存のasideフォーマットのスラッグをcustom-asideに変更します。
サンプル3: 特定の条件に基づいてスラッグをフィルタする
add_filter('get_post_format_slugs', 'filter_format_slugs');
function filter_format_slugs($slugs) {
if (is_admin()) {
return $slugs;
}
return array_diff($slugs, ['link']);
}
このコードは、管理画面ではスラッグを変更せず、フロントエンドではlinkフォーマットを除外します。
サンプル4: ポストフォーマットの外部からのカスタマイズ
add_filter('get_post_format_slugs', 'external_custom_post_formats');
function external_custom_post_formats($slugs) {
return array_merge($slugs, ['gallery', 'quote']);
}
このコードは、投稿フォーマットにgalleryとquoteを追加します。
サンプル5: 投稿フォーマットを使用したカスタムクエリの作成
add_filter('get_post_format_slugs', 'add_custom_query_format');
function add_custom_query_format($slugs) {
if (!in_array('video', $slugs)) {
$slugs[] = 'video';
}
return $slugs;
}
このコードは、videoフォーマットを追加して、カスタムクエリでの使用を可能にします。
以上、get_post_format_slugsフィルタの概要と使い方を説明しました。