WordPressのカスタム投稿アーカイブページのディスクリプションを設定できるようにする
記事内に商品プロモーションを含む場合があります
WordPressのアーカイブページは、SEO系のプラグインでもディスクリプションを設定できないものがあります。
アーカイブページは、「no-indexにしたほうがいい」という言われている方もいますが、今回はアーカイブページにもディスクリプションを設定したい場合の対応を考えました。
カスタム投稿アーカイブページのディスクリプションを設定
さっそくアーカイブページにディスクリプションを表示するコードを書きます。
変更するファイルは、functions.phpです。
function set_custom_post_type_meta_description($post_type_name, $description) {
global $wp_post_types;
if (isset($wp_post_types[$post_type_name])) {
$wp_post_types[$post_type_name]->description = $description;
add_action('wp_head', function() use ($post_type_name, $description) {
if (is_post_type_archive($post_type_name)) {
echo '<meta name="description" content="' . esc_attr($description) . '" />' . "\n";
}
});
}
}
add_action('init', function() {
set_custom_post_type_meta_description('カスタム投稿名01', 'カスタム投稿タイプ「カスタム投稿名01」のアーカイブページです。');
set_custom_post_type_meta_description('カスタム投稿名02', 'カスタム投稿タイプ「カスタム投稿名02」のアーカイブページです。');
});
「set_custom_post_type_meta_description(‘カスタム投稿名01’, ‘カスタム投稿タイプ「カスタム投稿名01」のアーカイブページです。’);」で、最初に表示したいカスタム投稿名、2つ目に表示するディスクリプションを入力します。
カスタム投稿が複数ある場合は、上記のコードのように下に追加することで設定することができます。
ABOUT ME