WordPress PR

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
シラツキ
Web制作会社で働くフロントエンドエンジニア(コーダー)。 ココナラでもお仕事募集しております。 HTML,CSS,JS,WordPress,EC-CUBE,Next.jsなど制作に役立つ情報を発信していきます。 webサイトの運営、修正、制作などお仕事も募集中! お気軽にご相談ください。