WordPressテンプレートタグ
WordPressをカスタムする時によく使用するテンプレートタグを紹介しています。
特定のカテゴリー毎の新着一覧を表示
<?php $posts=get_posts('numberposts=0 & category=11'); ?>
<?php if ( $posts ) : foreach($posts as $post) : setup_postdata($post); ?>
<ul>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?>
</ul>
<?php endforeach; endif; ?>
numberpostsは記事の数。「0」にすると全て表示になる。
categoryはカテゴリーIDの番号
特定のカテゴリ(ここでは1)で最新の5件を表示
<?php $posts=get_posts('numberposts=0 & category=11'); ?>
<?php if ( $posts ) : foreach($posts as $post) : setup_postdata($post); ?>
<ul>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?>
</ul>
<?php endforeach; endif; ?>
特定のカテゴリ内(ここでは1)に記事が存在する場合は表示
<?php if ( in_category('1') ) { ?>
<a href="<?php the_permalink() ?>"><?php the_title(); ?>
<?php } else { ?>
<?php } ?>
特定カテゴリ内の詳細ページのみを専用のテンプレートで表示させる
「in_category」というタグで、エントリーがどのカテゴリに属するのかを判別します。
「in_category」は通常はループの中で使うタグですが、
前述のような使い方をする場合はループ外で使う必要があります。
この場合、詳細ページのデフォルトのテンプレートである「single.php」に下記のコードを書きます。
もしもカテゴリ8に属するエントリーの場合はsingle1.phpを使って表示し、その他の場合はsingle2.phpを使う。という意味のコードです。
<?php
$post = $wp_query->post;
if ( in_category('8') ) {
include(TEMPLATEPATH . '/single1.php');
} else {
include(TEMPLATEPATH . '/single2.php');
}
?>
include()とTEMPLATEPATHを使ってファイルを読み込む
上に書いたコードで使われている通り、phpの「include()」を使うと他のファイルを読み込むことができます。
例えばフッターテンプレートを読み込むときは通常は以下のように書きますが、
<?php get_footer(); ?>
別のフッター用のファイル「footer2.php」を読み込みたい場合、上記の代わりに以下のコードを書きます。
<?php include (TEMPLATEPATH . '/footer2.php'); ?>
サイドバーテンプレートを使い分ける
複数のサイドバーを使い分けることができます。ページごとに異なるサイドバーで表示させたい場合などに便利です。
sidebar.phpとsidebar-2.phpを使い分ける場合、読み込む場所に以下のコードを書いて使い分けます。
デフォルトのsidebar.phpを読み込ませるとき
<?php get_sidebar(); ?>
sidebar-2.phpを読み込ませるとき
<?php get_sidebar('2'); ?>
ページテンプレートを作る
ページテンプレートのデフォルトのファイル名は「page.php」ですが、
各ページごとに個別のテンプレートファイルを作ることができます。
ページテンプレートを作る時は、適当な名前(例えばpage2.phpとか)でテンプレート用のファイルを保存し、
そのファイルの一番上に以下のコードを書きます。
<?php
/*
Template Name: ページテンプレート名
*/
?>
上の「ページテンプレート名」という部分にテンプレート名を書きます。
ここに書いたテンプレート名は、WordPressの管理画面のページ作成画面に、
プルダウン式のメニューで表示され、各ページに適用させるテンプレートを選択することができます。
