expexp.jp

WordPress

WordPressでdescriptionに抜粋を出力したい

WordPressテーマのdescriptionに一般で設定するキャッチフレーズ(サイトの説明)ではなく、記事の内容に沿った抜粋を表示する例を紹介します。

GoogleなどへのSEO対策やSNSへ情報を送るなど、descriptionへの要望は多いです。

関数作成

まずはfunctions.phpに出力用の関数を記述します。単純に記事のみ抜粋を表示する場合、条件分岐タグのis_single関数と、投稿記事の抜粋を取得するget_the_excerpt関数を使います。また、抜粋への入力が無い場合は、通常通りキャッチフレーズを表示するようにしています。

functions.php

function get_description() {
  // 記事ページの場合
  if(is_single()) {

    // 投稿画面で入力した抜粋を出力用の変数へ代入
    $description = get_the_excerpt();
  }

  // 抜粋が無い場合は通常通りキャッチフレーズを出力
  if(empty($description)) {
    $description = bloginfo('description');
  }

  return $description;
}

テーマに出力

次にテーマ上の出力したい場所に作成した関数を記述します。

metaタグのdescriptionに出力する場合は次のようになります。OGPに出力する場合も同じようにを使えます。

head内meta部分

<meta name="description" content="<?php echo get_description(); ?>">

OGPのdescriptionに出力する場合

<meta property="og:description" content="<?php echo get_description(); ?>">

これで記事の抜粋をdescriptionに出力することができ、抜粋が無い場合はサイトのキャッチコピーを出力して、descriptionが空になることを防ぎます。

関連記事