Yoast SEO 利用時に トップページ の アイキャッチ を設定する方法

Yoast SEO

Yoast SEO でトップページにアイキャッチを設定する場合、固定ページだと簡単ですが、投稿ページだと簡単に設定する方法がなさそう(この辺りは利用しているテーマにもよると思いますが、、、)なので試行錯誤してみました。画像はサイトアイコンで使っている画像を表示するようにしてみました。

/*-------------------------------------------*/
/* Yoast SEO 利用時にトップページのアイキャッチを設定
/*-------------------------------------------*/
// トップページ(サイトが'https'の場合)
$url_1 = home_url( '/' , 'https');
// 現在のページURL
$n_url = (empty($_SERVER['HTTPS']) ? 'http://' : 'https://') . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
// og:image
function no_yoast_seo_ogpimg($object){
    $image_path = get_site_icon_url(); // サイトアイコン
    $object->add_image($image_path);
}
// twitter:image
function no_yoast_seo_twimg(){
    $image_path = get_site_icon_url(); // サイトアイコン
    return $image_path;
}
if( $url_1 == $n_url ){ 
    add_action('wpseo_add_opengraph_images','no_yoast_seo_ogpimg');
    add_filter('wpseo_twitter_image','no_yoast_seo_twimg');
}

その他、カテゴリーページや画像が小さい時も変更したいと思ったので条件を追加してみました。条件は色々アレンジ出来ると思います。

/*-------------------------------------------*/
/* トップページとカテゴリーページ、画像が小さい場合のアイキャッチを設定
/*-------------------------------------------*/
$url_1 = home_url( '/' , 'https'); // トップページ
$url_2 = home_url( '/category/' , 'https'); // カテゴリーページ
// 現在のページURL
$n_url = (empty($_SERVER['HTTPS']) ? 'http://' : 'https://') . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$ids = url_to_postid($n_url);
$thumbnail_id = get_post_thumbnail_id($ids); // 現在のURLからIDを取得
$image = wp_get_attachment_image_src( $thumbnail_id, 'full' );
$width = $image[1]; // アイキャッチ画像の横幅
$height = $image[2]; // アイキャッチ画像の高さ
// og:image
function no_yoast_seo_ogpimg($object){
    $image_path = get_site_icon_url(); // サイトアイコン
    $object->add_image($image_path);
}
// twitter:image
function no_yoast_seo_twimg(){
    $image_path = get_site_icon_url(); // サイトアイコン
    return $image_path;
}
if($url_1 == $n_url || strpos( $n_url, $url_2 ) !== false || $width < 200 || $height < 200){
    add_action('wpseo_add_opengraph_images','no_yoast_seo_ogpimg');
    add_filter('wpseo_twitter_image','no_yoast_seo_twimg');
}

もっとスマートなやり方もありそうですが、とりあえずfunctions.php にコピペでそのまま使えると思います。

応援よろしくお願いします。
いいね ! してもらえると嬉しいです。

Twitter で

自己紹介

松田 大 と申しますm(_ _)m
インディーズでミュージシャンをやっていたのですがいつのまにか...

とある企業でショップのアルバイトスタッフから正社員、支店長を経てシステム部門に異動するという、開発担当としては変わった経緯を持っている方だと思います。

「Excel VBA」からスタートして、Yamaha RTX シリーズで VPN環境構築、Hyper-V環境構築、Windowsアプリ開発などを経験した後、「 WordPress 」に出会い、どっぷりハマっています(^_^)。

現在勤めているJTクラウドシステムでは、「 WordPress 」を活用したWEBサイト、業務用WEBアプリケーション開発を中心に、記事の執筆代行や掲載に必要な情報のリサーチ、映像のテロップ入れや切りはりなどの簡単な動画編集なども、まとめて行なっています。

昨年7月、代表取締役に選任され、8月に第一子が誕生、公私ともに慌ただしくしています(笑)

お問い合わせはJTクラウドシステムホームページからお願いします。