お客様より、WordPress(ワードプレス)の投稿の一覧画面で投稿の概要を出力していたのが、ある時から出力されなくなってしまったというトラブルのご相談を頂きました。
原因はAll in One SEO
調査を開始したところ、その概要の出力にはプラグインの『All in One SEO』を利用した「Meta description」を利用して、次のコードで出力されていました。
<?php echo get_post_custom()['_aioseop_description'][0] //description ?>
これがある投稿から出力されなくなってしまっていました。しかし、投稿の編集画面を見ると情報が正しく入っています。
そこで、試しに正常に表示されている投稿の「Meta description」の内容を少し変更してみました。こうして画面を表示してみると、変更した内容が反映されません。つまり、データが正しく取得できていないことが分かりました。
ver.4.1.5.3でデータ構造が変更されていた
そこで、All in One SEOのプラグインを詳細にお調べしていると、値の取り方が違っていることが分かりました。次のように最後の「p」が不要なのです。
× get_post_custom()['_aioseop_description'][0]
○ get_post_custom()['_aioseo_description'][0]
こうして「p」を取り除くと、正しく値が表示されました。実は、All in One SEOの4.1.5.3というバージョンでデータ構造や、データの取り方に変更があり、上記のようにキーに変更があったようです。
今回、WordPressのバージョンアップでAll in One SEOがバージョンアップしたことで、それまでのデータ構造ト変化してしまって、値が取れなくなってしまっていたようです。プログラムを修正して、修理・復旧しました。