AMPページにサイドバーメニューを取り付ける方法を解説

8 分で読めます。 投稿から 5か月
この記事の作成に約 119 分かかりました。
スポンサーリンク

AMPにサイドバーをつけたい人?

過去に公開したamp関連記事がアクセス多いので、久々に書いてみます。

スマホに特化したAMPページではサイドバーはスペース的につけられません。でも、公式にはスクリプトが用意されています。
サイドバーというより、横からスライドして出てくるメニューです。

メニューアイコンを上部に表示させておき(別の方法も可)、クリックすると出てきます。
採用しているサイトは殆ど見かけないのですが、特に問題もなく動作するのでもっと普及してもいいのでは?

動的な動きのないampページが一気にクオリティがあがる感触。テーマファイルを編集するスキルと編集場所さえ突き止められるなら簡単です。

WordPress、テーマーはsimplicity2でのカスタマイズ例となります。

ampサイドバーの動作イメージ

アイコンタップで出現

右上のアイコンをタップするとメニューが出てくる。
常に同じ位置。

出てきたメニュー

本文に覆いかぶさる形で左から動的に出現。閉じるボタン付き。アイコンを再びタップしても閉じれます。

サンプルページ

AMPサイドバーサンプルページ
AMPサイドバーサンプルページ

これがサンプルページです。サンプルページは通常の静的なHTMLにしています。
このブログはamp化してませんので、サンプルページ以外には実装していません。

PCだと右上のメニューアイコンにマウスオーバーしてもポインター変化しませんが、クリックすればメニューも出てきます。

1、ヘッダーに公式スクリプトを読み込ませる

ampには公式でサイドバー用のスクリプトが用意されています。

それをAMPのヘッダー部分で読み込ませます。AMPのテーマファイルに記載してください
head内部でjsファイルが読まれている部分を探して付近に追加してください。

<script async custom-element="amp-sidebar" src="https://cdn.ampproject.org/v0/amp-sidebar-0.1.js"></script>
simplicityというテーマの場合はsingle-amp.phpを編集します。子テーマには同胞されていないので、親テーマから持ってきます。

2、メニューを別ファイルで作る

amp-menu.php
という名前でテーマファイルを新規に作成します。FTPでアップロードしてください。

今回はメニューだけ個別に編集しやすいように新規ファイルを作成する手段を採用していますが、single-amp.phpに直接記載しても問題ありません。その時は3のステップ1のコードの場所にこれを記載してください。

そして以下のコードをコピペして自分のブログ用にリンクするコードを書きます。

<?php //ampのメニュー ?>
<div id="amptglbtn"><amp-img src="アイコン画像URL" width="30" height="30" alt="サイト内メニュー" on="tap:sidebar1.toggle" role="button" tabindex="0"></amp-img></div>
<amp-sidebar id='sidebar1'
layout="nodisplay"
side="left">
<p class="menu-title">メニュー</p>
<ul>
<li><a href="/">トップページ</a></li>
<li><a href="https://slackline.jp/2010/04/08191200/">スラックラインとは?</a></li>
<li></li>
<li></li>
<li></li>
</ul>
<p>
<button class="close-menu-button" on='tap:sidebar1.close'>閉じる</button>
</p>
</amp-sidebar>

必須カスタマイズ二カ所

アイコンのurlとcss

アイコンの画像は自分で用意する必要があります。

<div id=”amptglbtn”><amp-img src=”アイコン画像URL” width=”30″ height=”30″ alt=”サイト内メニュー” on=”tap:sidebar1.toggle” role=”button” tabindex=”0″></amp-img></div>

 

アイコン画像url部分を変更してください。

何でもいいって人はこれをダウンロードしてご自身のサイトにアップロードしてください。
暗い色のブログでは使えません。

amp用のcss部分(ヘッダー部分に出力される)に以下をコピペします。必須です。位置は微調整してください。

#amptglbtn {
position: fixed;
top: 10px;
right: 10px;
}

 

simplicityというテーマの場合はamp.cssを編集します。
メニュー本体のリンク

<li></li>の部分を自身のサイト用に変更してください。

メニューの本体部分になります。

<li>以外にも自由に記載可能です。

cssでの装飾はampルールにのっとりヘッダー内に直接記載する必要が当然あります。

 

お好みでカスタマイズ

<amp-sidebar id=’sidebar1′
layout=”nodisplay”
side=”left”>ここがメニュー内部</amp-sidebar>

このleftはメニューが出てくる方向です。rightも可。

 

↓この部分がメニューを閉じる部分

<button class=”close-menu-button” on=’tap:sidebar1.close’>閉じる</button>

3、AMPテーマファイル本体を編集

次にampページを直接吐いているテーマファイルを編集します。

simplicityというテーマの場合はsingle-amp.phpです。

ステップ1

新規作成したamp-menu.phpを読み込むように記載します。

以下のコードを読み込ませてください。

layout=”nodisplay”となっているのでどこに描写してもHTMLでは表示されませんが、<div>の内側に書くとampエラーと警告されるので</body>の直前がいいでしょう。

 

<?php get_template_part('amp-menu'); //追加AMPメニュー?>

お好みでステップ2

右上のアイコンとは別にボタンでも開ける。
アイコンは必須じゃない。

サイドメニューを開くボタンを別に記載したい場合は以下をコピペしてください。

表示したいところにコピペ

ボタン

<p class="open-menu">
<button class="open-menu-button" on='tap:sidebar1.open'>サイドメニューを開く</button>
</p>

テキストなどボタン以外
spanなどでも可能。ヘッダー部分においてもいい。

<p><span class="open-menu-button" on='tap:sidebar1.open'>サイドメニューを開く</span></p>

必要なのはこれら

必要なのはヘッダーのスクリプト、出すボタン、メニュー部分、メニュー部分に消すボタン。

サイドバーで出てくるメニューは自由に記載できるので工夫次第で様々なことができると思います。

AMPサイドバーサンプルページ
AMPサイドバーサンプルページ

参考

<amp-sidebar> - サイドバーを設置する
AMPのamp-sidebarは、サイドバーを設置するための要素です。ボタンをクリックするとサイドからメニューが表示されます。サンプルコード、デモなど。
WP・blogについて
スポンサーリンク
この記事が気に入ったら
いいね!しよう
最新情報をお届けします。
slackline.jpを書いている人
歩き方

2009年よりスラックライン乗ってます。日本山岳ガイド協会公認ガイド(自然Ⅱ、登山Ⅲ、山岳Ⅰ)、登山用品店店員(元)、平尾台ボランティアガイド、NACS-J自然観察指導員など。アウトドア好きでキャンプ、洞窟、植物好き。

歩き方をフォローする
Amazonプライムビデオで「スラックラインのはじめかた」の無料視聴ができます。GAORAは30日間なら自由視聴できますので、プライムのお試し期間と組み合わせることでスラックライン番組4本 無料で見れます。
スラックラインの歩き方

コメント