概要
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
フィルタの概要と使い方を説明しました。