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

概要

single_post_title フィルタは、投稿ページのタイトルを表示する際に使用されます。このフィルタを使うことで、タイトルを動的に変更したり、広告を追加したり、特別なフォーマットを適用したりすることができます。また、特定の条件に基づいてタイトルの表示方法を変更する場合にも役立ちます。具体的には次のような機能実装の際に使用されることが多いです。

  1. タイトルに特定のプレフィックスやサフィックスを追加する
  2. SEO対策のためのキーワードの挿入
  3. タイトルのフォーマット変更(大文字化など)
  4. 条件に基づいたタイトルの修飾
  5. 特定の投稿タイプに異なるタイトルスタイルを適用する
  6. タイトルのカスタムメッセージを追加する
  7. 投稿の公開状況に応じたメッセージの表示
  8. 特定の投稿に応じてユーザーへのメッセージを挿入する

構文

add_filter('single_post_title', 'your_function_name');

パラメータ

  • $title: 投稿のタイトル(string)

戻り値

  • 修正されたタイトル文字列(string)

関連する関数

関連関数一覧

使用可能なバージョン

このフィルタはWordPress 2.0.0以降で使用可能です。

コアファイルのパス

wp-includes/post-template.php

サンプルコード

サンプルコード1: タイトルに「記事タイトル – サイト名」を追加する

add_filter('single_post_title', function($title) {
    return $title . ' - ' . get_bloginfo('name');
});

このコードは、投稿ページのタイトルにサイト名を追加します。

サンプルコード2: 投稿のタイトルをすべて大文字に変換

add_filter('single_post_title', function($title) {
    return strtoupper($title);
});

このサンプルでは、投稿のタイトルをすべて大文字に変換します。

サンプルコード3: タイトルにキーワードを追加

add_filter('single_post_title', function($title) {
    return $title . ' | あなたのSEOキーワード';
});

このコードは、SEO対策としてタイトルに特定のキーワードを追加します。

サンプルコード4: 特定の投稿タイプに異なるタイトル形式を適用

add_filter('single_post_title', function($title) {
    if (get_post_type() === 'custom_type') {
        return 'カスタム形式: ' . $title;
    }
    return $title;
});

カスタム投稿タイプに対して異なるタイトル形式を適用するサンプルです。

サンプルコード5: 投稿が非公開の場合に特別なメッセージを表示

add_filter('single_post_title', function($title) {
    if (!is_single() || !is_object(get_post())) {
        return $title;
    }
    if (get_post_status() === 'draft') {
        return 'この投稿は下書きです: ' . $title;
    }
    return $title;
});

このコードは、投稿が下書き状態の場合に特別なメッセージを表示します。

この関数のアクションでの使用可能性

アクション 使用可能
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

バージョンの非推奨または削除履歴

現在のところ、single_post_title フィルタは非推奨または削除されたWordPressバージョンはありません。

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


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