ワードプレスのpost_type_archive_titleフィルタの使用方法・解説

概要

post_type_archive_titleフィルタは、カスタム投稿タイプアーカイブのタイトルを表示する際に、そのタイトルを動的に変更するために使用される非常に便利なフィルタです。このフィルタは以下のような機能実装に役立ちます:

  1. カスタム投稿タイプの名前を多言語対応にする
  2. 視覚的にタイトルを装飾・カスタマイズする
  3. 投稿タイプのアーカイブに特定の属性を付与する
  4. SEOのためにタイトルを最適化する
  5. 特定の条件に基づいてタイトルを変更する
  6. ユーザーのロールに基づいてタイトルを動的に生成する
  7. テーマ固有のスタイルに合わせてタイトルを変更する
  8. タイトルに追加情報(例:投稿数)を加える

このフィルタの構文は次の通りです:

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

この関数について質問する


上の計算式の答えを入力してください