WordPressでAMPでいいページとAMPじゃ困るページがある…[暫定解決]
自前のWordpressテーマをプラグインなしにAMP対応してるんですけど、表題の通りの状況に出くわしまして。
例えばこんな状況
- AMP対応してない広告モジュールがありCV影響がデカすぎる
- PC用にページを用意してある。モバイルだけAMP表示したい
- 複数サイトに同じテーマを使用しているがサイトによってはAMP対応したくない
こんなわがままボディな状況なので、暫定的に出しわけ処理を入れることにしました。
headのlinkタグでコントロールする
AMPページをクロールしてもらう場合は、ページのhead内に特定のリンクタグを置きます。
そうするとクロールされてAMPページがインデックスされるわけです。
逆にいうと、amphtmlのリンクタグがないとAMPページは存在するんだけど、インデックスされない状況になります。
それを活用して条件分岐します。
コメントがゴチャッてる。
取り除くとこんな↓
WordPressでAMP対応する場合、記事ページだけ、モバイルページだけ対応するケースが主要かと思います。
だからif文に、それを入れてあります。
広告がある場合は記事の投稿データを取得して、preg_matchで検索をかける感じになります。A8.netのURLを例にしてますが未検証なので、正規表現は自前で調べて書くことをおすすめします。
「is_amp関数」も使うと便利
ちなみに広告モジュールだけ表示を切り替えて、AMPページ自体はインデックスされたいケースもありますね。
その場合は「is_amp関数」を作って対応すれば良いです。
関連WordPressでAMPページの出しわけ「is_amp関数」を作る
つか、こっちのがAMP対応としては素直な感じですね。
※記事で紹介したコードは動作を保証するものではございません。必ず自己責任で使用してください。コードを使う際はテストを行い、動作検証をおこなってください。