WordPressのRank Math SEOでのOGPの設定で、投稿のOGP画像が投稿内の最初の画像から変更できずに困ったのでメモ。
フィルターを追加することでOGP画像の細かい操作が可能でした。
フィルターの追加
functions.php
に追記するか、functions.phpと同じ階層にrank-math.php
ファイルを追加して記載します。
Rank Math公式は、煩雑さを回避するためにrank-math.php
を作成することを勧めています。
今回私が追記したコードは以下です。
///// 投稿のOGP画像をカスタムフィールドの値にする /////
add_filter( "rank_math/opengraph/facebook/image", function( $attachment_url ) {
if(is_single()){
$thum = CFS()->get('thumbnail');
$attachment_url = $thum;
return $attachment_url;
}
});
add_filter( "rank_math/opengraph/twitter/image", function( $attachment_url ) {
if(is_single()){
$thum = CFS()->get('thumbnail');
$attachment_url = $thum;
return $attachment_url;
}
});
is_single()
で投稿ページのみに限定- Custom FIeld Suiteで追加したカスタムフィールドを
CFS()->get('フィールドname')
で取得 - 取得した内容を返す
- フィルターがfacebookとtwitterで別々なので、2回記載
という流れです。
rank-math.php
に追記する際は、以下のように<?php
を記載してからコードを入力してください。
<?php
///// 投稿のOGP画像をカスタムフィールドの値にする /////
add_filter( "rank_math/opengraph/facebook/image", function( $attachment_url ) {
if(is_single()){
$thum = CFS()->get('thumbnail');
$attachment_url = $thum;
return $attachment_url;
}
});
add_filter( "rank_math/opengraph/twitter/image", function( $attachment_url ) {
if(is_single()){
$thum = CFS()->get('thumbnail');
$attachment_url = $thum;
return $attachment_url;
}
});
Advanced Custom Fieldsの場合
Advanced Custom Fields
の場合はthe_fields('フィールドname')
でカスタムフィールドの値が取得できますね。