All in One SEOプラグインでtwitterカードが大きくならない問題

こんにちは、masakiです。

WordPressでAll in One SEOでtwitterカードの設定をしているのですが、管理画面でTwitterカードを大きい画像で表示する設定をしても反映されず、blogのヘッダーのmetaタグのtiwitter:cardがいつまで経ってもsummaryのままでsummary_large_imageになりません。

<meta name="twitter:card" content="summary" />

WordPressのAll in One SEOプラグインの、modules/aioseop_opengraph.phpの処理を書き換えて、管理画面の設定が優先されるように修正するpatchを書きました。

--- aioseop_opengraph.php	2019-09-27 17:29:34.000000000 +0900
+++ aioseop_opengraph_new.php	2019-09-27 17:32:03.000000000 +0900
@@ -1471,13 +1471,13 @@
 			}
 
 			$card = 'summary';
-			if ( ! empty( $this->options['aiosp_opengraph_defcard'] ) ) {
-				$card = $this->options['aiosp_opengraph_defcard'];
-			}
-
 			if ( ! empty( $metabox['aioseop_opengraph_settings_setcard'] ) ) {
 				$card = $metabox['aioseop_opengraph_settings_setcard'];
 			}
+			
+			if ( ! empty( $this->options['aiosp_opengraph_defcard'] ) ) {
+				$card = $this->options['aiosp_opengraph_defcard'];
+			}
 
 			// support for changing legacy twitter cardtype-photo to summary large image.
 			if ( 'photo' == $card ) {

all_in_one_seo_pack.patchをWordPressのディレクトリの中に置き、以下のコマンドを実行してください。

patch -u --ignore-whitespace wp-content/plugins/all-in-one-seo-pack/modules/aioseop_opengraph.php < ./all_in_one_seo_pack.patch

これでAll in One SEOのTwitterカードの設定が正常に反映されます。

自分のblogのソースコードのヘッダーを見ると、以下のように正常にsummary_large_imageが出力されています。

<meta name="twitter:card" content="summary_large_image" />
エンジニアがおすすめするプログラミングスクール3社

スポンサーリンク