[amp_sidebar]
この記事は、プラグインのreadme.mdで紹介されているAMPフィルターの動作テストを行ったメモです。
AMPにアイキャッチ画像を追加
/** * */ add_action( 'pre_amp_render_post', 'xyz_amp_add_custom_actions' ); function xyz_amp_add_custom_actions() { add_filter( 'the_content', 'xyz_amp_add_featured_image' ); } function xyz_amp_add_featured_image( $content ) { if ( has_post_thumbnail() ) { // Just add the raw <img /> tag; our sanitizer will take care of it later. $image= sprintf( '<p class="xyz-featured-image">%s</p>', get_the_post_thumbnail() ); $content= $image . $content; } return $content; }
ページ幅の変更
add_filter( 'amp_content_max_width', 'xyz_amp_change_content_width' ); function xyz_amp_change_content_width( $content_max_width ) { return 1200; }
AMPプラグインのテンプレートではなく、テーマ内のテンプレートを使用する
add_filter( 'amp_post_template_file', 'xyz_amp_set_custom_tax_meta_template', 10, 3 ); function xyz_amp_set_custom_tax_meta_template( $file, $type, $post ) { if ( basename( $file )=== 'single.php' ) { $file= get_stylesheet_directory().'/amp-single.php'; } return $file; }
著者の表示を削除
add_filter( 'amp_post_template_meta_parts', 'xyz_amp_remove_author_meta' ); function xyz_amp_remove_author_meta( $meta_parts ) { foreach ( array_keys( $meta_parts, 'meta-author', true ) as $key ) { unset( $meta_parts[ $key ] ); } return $meta_parts; }
カテゴリーリストや著者情報のメタブロックにコンテンツを差し込む
add_filter( 'amp_post_template_meta_parts', 'xyz_amp_add_item' ); function xyz_amp_add_block( $meta_parts ) { $meta_parts[]= 'xyz_amp_add_item'; return $meta_parts; } add_filter( 'amp_post_template_file', 'xyz_amp_add_item_path', 10, 3 ); function xyz_amp_add_item_path( $file, $type, $post ) { if ( 'xyz_amp_add_item'=== $type ) { $file= get_stylesheet_directory().'/amp-hoge.php'; } return $file; }
CSSの追加
add_action( 'amp_post_template_css', 'xyz_amp_my_additional_css_styles' ); function xyz_amp_my_additional_css_styles( $amp_template ) { // only CSS here please... ?> .amp-wp-byline amp-img { border-radius: 0; /* we don't want round avatars! */ } .my-custom-class { color: blue; } <?php }
クエリ―文字列を変更する
add_filter( 'amp_query_var' , 'xyz_amp_change_endpoint' ); function xyz_amp_change_endpoint( $amp_endpoint ) { return 'foo'; }
フッターにクレジットなどを追加する
add_action( 'amp_post_template_footer', 'amp_custom_footer' ); function amp_custom_footer(){ echo '<address>http://example.com</address>'; }
AMPパーマリンクの取得
amp_get_permalink($post_id);
AMPページかどうかの条件分岐
is_amp_endpoint()