本日は、all in one SEOのキーワード設定をONにした上で、キーワードのカンマ区切りを半角スペースに変更の上「投稿名 キーワード サイト名」でtitle表示されるようにするコードを、chatGTPくんと協同で作成しました。
下記をfunctions.phpに記載します。管理画面のコンテンツごとのタイトル名の設定は無視され、こちらが優先されますのでご注意ください。
変更が必要な箇所は
- サイト名
- 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」であることです。分かってしまえば、なんだ、って感じですが。こちらで見つけました。公式サイトにも探せばあるんだろうな。