WordPressテーマ作成時に覚えておくと便利なテンプレートタグ&小技まとめ
- thumbnail
- WordPressテーマ作成時に便利なテンプレートタグ&小技まとめ
ずいぶんとお久しぶりな更新になってしまいました>_<
最近、お仕事でWordPressのテンプレ作成を作る機会が多かったので、
今回は使ってて便利だなぁと思ったテンプレートタグや、その他小技を紹介したいと思います!
目次
- 各固定ページ/投稿ごとにテンプレートを切り替える
- 要素を特定のページ/カテゴリーでのみ表示する
- 文字列・タグを特定のページ/カテゴリーでのみ表示する
- スラッグを使ってCSSをページ/カテゴリーごとに切り替える
- カスタム投稿タイプ/カスタムタクソノミーをプラグイン無しで実現する
各固定ページ/投稿ごとにテンプレートを切り替える

たとえば、それぞれデザインの違う親ページが数種類あり、
それらの子ページはそれぞれの親ページとデザインを合わせるなどといった場合に便利な方法です!
固定ページごとにテンプレートを切り替える方法
1. 新しくpage-○○.phpファイルを作成(○○部分は任意)
2.page.php一番上(<?php get_header(); ?>より前)に
1 2 3 4 5 |
<?php /* Template Name:任意のテンプレート名(日本語可) */ ?> |
上記の記述を追加する
固定ページ編集画面右横に「テンプレート」という項目が追加され、
プルダウンメニューから作成したテンプレートを選べるようになります。
投稿ごとにテンプレートを切り替える方法
1.プラグイン:Custom Post Templateをインストール
2. 新しくsingle-○○.phpというファイルを作成(○○部分は任意)
3.single-○○.php一番上(<?php get_header(); ?>より前)に
1 2 |
<?php/*Template Name Posts: 任意のテンプレート名(日本語可)*/ ?> |
上記の記述を追加する
固定ページ編集画面右横に「Post Template」という項目が追加され、
プルダウンメニューから作成したテンプレートを選べるようになる
要素を特定のページ/カテゴリーでのみ表示する
例えば、イベント情報を投稿するイベントというカテゴリーでのみ、
お申込みリンクボタンを配置したい!なんて時に便利です♪
これを知るまでは、ちょびっとしか変更ないのに
一個いっこcategory.phpやpage.phpを作ったりしていました^^;
要素を特定の固定ページのみ表示する
1 2 3 |
<?php if(is_page('固定ページスラッグ')): ?> ここに特定のページだけで見せたいものをかく <?php endif; ?> |
要素を特定のカテゴリーのみ表示する
1 2 3 |
<?php if(is_category('2')): ?> //2はカテゴリーID ここに特定のカテゴリーだけで見せたいものをかく <?php endif; ?> |
文字列・タグを特定のページ/カテゴリーでのみ表示する

なんてときはこいつが使えます♪
(”サービス”というページが表示されている時はグローバルナビゲーションの”サービス”という項目をハイライトさせるみたいな感じ)
文字列・タグを特定の固定ページでのみ表示する
1 |
<?php if (is_page('ページスラッグ')){echo "文字列";}?> |
文字列・タグを特定のカテゴリーでのみ表示する
1 |
<?php if (is_category('カテゴリースラッグ')){echo "文字列";}?> |
例:特定のページでだけactiveというクラスを追加する
1 |
<?php if (is_page('ページスラッグ')){echo "class=active";}?> |
※クラス名を囲うカンマは無しでOK
スラッグを使ってCSSをページ/カテゴリーごとに切り替える
cssを下層ページごとそれぞれに作ってたりすると、ヘッダーに書く時こまったりしますよね>_<
そんな時はこのテンプレタグを使いましょう!
○○.cssの○○が下層ページのスラッグと同じ名前の場合
1 |
<link href="<?php bloginfo('template_url'); ?>/css/<?php echo attribute_escape( $post->post_name ); ?>.css" rel="stylesheet" type="text/css”> |
../○○/style.cssなど、格納ファイルが下層ページのスラッグと同じ名前の場合
1 |
<link href="<?php bloginfo('template_url'); ?>/<?php echo attribute_escape( $post->post_name ); ?>/style.css |
○○.cssの○○がカテゴリースラッグと同じ名前の場合
1 2 |
<?php $cat = get_the_category(); $cat = $cat[0];?> <link href="<?php bloginfo('template_url'); ?>/css/<?php echo $cat->category_nicename; ?>.css" rel="stylesheet" type="text/css”> |
../○○/style.cssなど、格納ファイルが下層ページのスラッグと同じ名前の場合
1 2 |
<?php $cat = get_the_category(); $cat = $cat[0];?> <link href="<?php bloginfo('template_url'); ?>/<?php echo $cat->category_nicename; ?>/style.css |
参考URL:
http://planbworks.net/web/category_slug.html
カスタム投稿タイプ/カスタムタクソノミーをプラグイン無しで実現する
プラグインを使う人も多いと思いますが、
意外とそんなに難しくないので、この方法を知ってからは自分で書くようになりました♪
functions.phpに以下を追加
※コメントを入れる位置を間違えて、コードがうまく動かなくなっていたため、修正しました>_<(2014/10/7)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
//カスタム投稿タイプ function my_custom_init() { register_post_type( 'sample', array(//スラッグ名がsampleの場合 'label' => 'サンプルポスト',//ポストタイプ名をここに入れましょう 'public' => true, 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'custom-fields' ,'comments' ), 'menu_position' => 5, 'has_archive' => true )); //カスタムタクソノミー(カテゴリーをカスタム投稿タイプで使えるようにするもの) register_taxonomy( 'category', 'sample',//カスタム投稿タイプのスラッグをここに書く array( 'hierarchical' => true, 'update_count_callback' => '_update_post_term_count', 'label' => 'カテゴリー', 'singular_label' => 'カテゴリー', 'public' => true, 'show_ui' => true ) ); } add_action( 'init', 'my_custom_init' ); |
参考URL:
http://kachibito.net/wordpress/custom-post-type-list.html
以上!
WordPressテーマ作成時に便利なテンプレートタグ・小技のご紹介でしたー♪