本日は、all in one SEOのキーワード設定をONにした上で、キーワードのカンマ区切りを半角スペースに変更の上「投稿名 キーワード サイト名」でtitle表示されるようにするコードを、chatGTPくんと協同で作成しました。

下記をfunctions.phpに記載します。管理画面のコンテンツごとのタイトル名の設定は無視され、こちらが優先されますのでご注意ください。

変更が必要な箇所は

  1. サイト名
  2. is_singular(‘process’)  はカスタム投稿のケースです。通常の投稿なら「is_single」でOKです。
function custom_modify_title($title) {
    global $post;

    if (is_singular('process') && !empty($post)) {
        $post_title = get_the_title(); // 投稿のタイトルを取得
        $keywords = get_post_meta($post->ID, '_aioseo_keywords', true); // キーワードを取得

        // カンマを半角スペースに変更
        $keywords = str_replace(',', ' ', $keywords);

        // タイトルを「投稿タイトル - キーワード - サイト名」の形式に結合
        $site_name = 'サイト名'; // サイト名を変更してください
        $title = $post_title . ' - ' . $keywords . ' - ' . $site_name;
    }

    return $title;
}
add_filter('aioseo_title', 'custom_modify_title');

キーワードがカンマ区切りののままで良ければ、面倒なことは不要です。管理画面のカスタムフィールド表示で「_aioseo_keywords」を指定するだけでいけます。
ポイントは、フィルターフックが「aioseo_title(以前はaioseop_title)」であること、キーワードが格納されているカスタムフィールド名が「_aioseo_keywords」であることです。分かってしまえば、なんだ、って感じですが。こちらで見つけました。公式サイトにも探せばあるんだろうな。