AMP for WordPressプラグインの修正方法~必須の構造化データ要素のエラーに対処(後編)。
先日は、AMPで、「urlフィールド値は必須です」エラーの原因について解説いたしました。(エラーの原因については、お手数ですがこちらをご参照ください。)
今回は、具体的なプラグインの修正方法について記述いたします。
ただし、プログラムの修正方法がわからないなど、自身のない方はやらないほうが良いです。修正される場合は「自己責任」でお願い申し上げます。
使用しているプラグインは、「AMP for WordPress」
私が使用しているプラグインは、AMP for WordPressです。
ググって調べたとこも、このプラグインに関することが多々でてきました。
構造化データ要素のエラーは、要は文法エラーですので、その文法を作っている個所を直せばOKです。
修正する箇所はこのファイルです。
修正するファイルは、以下のファイルです。
このファイルだけ修正します。
\wp-content\plugins\amp\includes\amp-helper-functions.php
amp-helper-functions.phpの1050行目あたりに、「amp_get_publisher_logo()」という関数があります。
この関数では、”logo”項目についての記述をしています。
カスタムロゴ指定がある場合は、それなりに各値が入るようですが、今回はデフォルト画像ロゴが表示されていました。
1100行目当たりが、デフォルト画像ロゴの指定になっています。
ここで”URL”項目などをして指定ないために、文法エラーになっています。
1 2 3 4 5 6 7 8 |
// Fallback to serving the WordPress logo. if ( empty( $logo_image_url ) ) { if ( $is_amp_story ) { $logo_image_url = amp_get_asset_url( 'images/stories-editor/amp-story-fallback-wordpress-publisher-logo.png' ); } else { $logo_image_url = amp_get_asset_url( 'images/amp-page-fallback-wordpress-publisher-logo.png' ); } } |
文法に沿って記述を追加すればOKです。
if文でStory画像があるか、無いかでデフォルト画像が変わっています。
今回は、elseの「amp-page-fallback-wordpress-publisher-logo.png」が”logo”に設定されていたので、この部分を直します。
直したものがこちらです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
// Fallback to serving the WordPress logo. if ( empty( $logo_image_url ) ) { if ( $is_amp_story ) { $logo_image_url = amp_get_asset_url( 'images/stories-editor/amp-story-fallback-wordpress-publisher-logo.png' ); } else { // 修正開始↓↓↓↓↓↓↓↓↓↓↓↓↓↓ $logo_image_url = array( '@type' => 'ImageObject', 'url' => amp_get_asset_url( 'images/amp-page-fallback-wordpress-publisher-logo.png' ), 'width' => '1722', 'height' => '401' ); // 修正ここまで↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ } } |
arrayで囲み、’url’=>を付け足せば、URLフィールド値の指定完了です。
@typeは、画像なので、’ImageObject’固定です。
width、heightは画像が1種類なので、固定値を入れています。
オリジナル画像を入れる場合は、その画像のサイズを設定します。
修正をプラグインに反映し、チェックしてみました。
修正プラグインを反映し、「構造化データテストツール」でさっそくチェックしてみました。
エラーがなくなりました。
logoの項目にも、@type、url、width、heightが反映されました。
全くわからないことを調べるのは大変でしたが、とても良い経験になりました。
今回の事例は、まったく知らないことに対しての調査でした。
原因・修正箇所・直し方など何一つわからない状態でしたのでとても苦労しました。
ただ、ググってみるとそれなりに答えがあるものです。
あとはトライ&エラーで対応することができました。
ひとつひとつ問題をクリアしてゆけば何とかなるものです。