概要
post_type_archive_titleフィルタは、カスタム投稿タイプアーカイブのタイトルを表示する際に、そのタイトルを動的に変更するために使用される非常に便利なフィルタです。このフィルタは以下のような機能実装に役立ちます:
- カスタム投稿タイプの名前を多言語対応にする
- 視覚的にタイトルを装飾・カスタマイズする
- 投稿タイプのアーカイブに特定の属性を付与する
- SEOのためにタイトルを最適化する
- 特定の条件に基づいてタイトルを変更する
- ユーザーのロールに基づいてタイトルを動的に生成する
- テーマ固有のスタイルに合わせてタイトルを変更する
- タイトルに追加情報(例:投稿数)を加える
このフィルタの構文は次の通りです:
apply_filters( 'post_type_archive_title', $title, $post_type );
パラメータ
$title: 変更対象のアーカイブタイトル。$post_type: 対象のカスタム投稿タイプの名前。
戻り値
- 変更後のアーカイブタイトル(文字列)。
関連する関数
使用可能なバージョン
- WordPress 4.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('post_type_archive_title', 'my_custom_post_type_archive_title', 10, 2);
function my_custom_post_type_archive_title($title, $post_type) {
if ($post_type === 'my_custom_post') {
return 'カスタム投稿アーカイブのタイトル';
}
return $title;
}
このサンプルコードは、my_custom_postというカスタム投稿タイプのアーカイブタイトルを「カスタム投稿アーカイブのタイトル」に変更します。
引用元: WordPress Codex
サンプル2
add_filter('post_type_archive_title', 'custom_title_with_count', 10, 2);
function custom_title_with_count($title, $post_type) {
if ($post_type === 'books') {
$count = wp_count_posts('books')->publish;
return '私の本のアーカイブ (' . $count . ' 件)';
}
return $title;
}
このサンプルコードはbooksカスタム投稿タイプのアーカイブタイトルに、公開されている書籍の数を追加する機能を提供します。
引用元: WPBeginner
サンプル3
add_filter('post_type_archive_title', 'translate_post_type_archive_title', 10, 2);
function translate_post_type_archive_title($title, $post_type) {
if ($post_type === 'events') {
return __('イベント', 'text-domain');
}
return $title;
}
このサンプルコードは、eventsというカスタム投稿タイプのアーカイブタイトルを翻訳に対応させるためのものです。
引用元: WPShout
サンプル4
add_filter('post_type_archive_title', 'prepend_site_name_to_title', 10, 2);
function prepend_site_name_to_title($title, $post_type) {
if ($post_type === 'portfolio') {
return get_bloginfo('name') . ' - ' . $title;
}
return $title;
}
このサンプルコードは、portfolioカスタム投稿タイプのアーカイブタイトルの前にサイト名を追加するためのものです。
引用元: ThemeShaper
サンプル5
add_filter('post_type_archive_title', 'style_post_type_title', 10, 2);
function style_post_type_title($title, $post_type) {
if ($post_type === 'gallery') {
return '<strong>' . $title . '</strong>';
}
return $title;
}
このサンプルコードは、galleryというカスタム投稿タイプのアーカイブタイトルを太字で表示するためのものです。
引用元: CSS-Tricks