WordPressテーマSANGOの質問

カテゴリーに独自のアイキャッチを設定する方法

アバター
轟元気

サルワカさま
お世話になっております。

教えていただきたいことがあるのですが、SANGOでカテゴリー毎に独自のアイキャッチ画像を設定することはできるのでしょうか?

今はSNSなどでカテゴリーページをリンクすると「トップページのOGP画像」が出力されますが、これをカテゴリー毎に変更したいのです。

方法等ございましたらご教授いただけますと幸いです。

お忙しいところ大変恐縮ですがよろしくお願いいたします。

SEOを考えたカテゴリー設定
SEOを考えたカテゴリー設定をしよう
コメントへの回答
サルワカくん
サルワカくん
2020/07/18

子テーマで下記の関数を記載することで、OGP画像の出力の仕方を上書きできます。

  function sng_set_ogp_image() {
    if( is_singular() ) return featured_image_src('large');
    if( get_option('set_home_ogp_image') ) {
      return get_option('set_home_ogp_image');
    } elseif( get_option('thumb_upload') ){
      return get_option('thumb_upload');
    } elseif( get_option('logo_image_upload') ) {
      return get_option('logo_image_upload');
    } else {
      return get_template_directory_uri() . '/library/images/default.jpg';
    }
  }

具体的には以下のようにすれば良いと思います。

  function sng_set_ogp_image() {
    if( is_singular() ) return featured_image_src('large');
    /* 特定のカテゴリーの場合は別のOGP画像のURLを指定 */
    if( is_category("example") ) {
      return "https://hogehoge.com/wp-contents/hoge.jpeg";
    }
    if( is_category("example2") ) {
      return "https://hogehoge.com/wp-contents/hoge2.jpeg";
    }
    if( get_option('set_home_ogp_image') ) {
      return get_option('set_home_ogp_image');
    } elseif( get_option('thumb_upload') ){
      return get_option('thumb_upload');
    } elseif( get_option('logo_image_upload') ) {
      return get_option('logo_image_upload');
    } else {
      return get_template_directory_uri() . '/library/images/default.jpg';
    }
  }

特定のカテゴリーの条件分岐についてはこちらが参考になると思います。

なお、OGP画像のURLを変更しても、SNSによってはすぐに反映されないのでご注意ください。
(たとえばTwitterの場合はCard Validatorを使ってキャッシュを削除する必要があります)

よろしくお願いします。

アバター
轟元気
2020/07/18

早速のご回答ありがとうございます。
無事設定できました。

教えていただてもらっておいて恐縮なのですが、

if( is_category("example") ) {
      return "https://hogehoge.com/wp-contents/hoge.jpeg"
    }

上記を

if( is_category("example") ) {
      return "https://hogehoge.com/wp-contents/hoge.jpeg";
    }

このように記述したらエラーが消えました。

今回も素早い対応ありがとうございました。
これからもよろしくお願いいたします!

サルワカくん
サルワカくん
2020/07/19

失礼しました。行の末尾の;をつけ忘れていました。
(上述のコードは修正しておきました)
ご報告ありがとうございました。