ゼロから作るWPテーマ[WordPressテーマ作成 #1]
2009/02/03
Feb. 4, 2009
前回はブログのタイトルを表示するだけだったので記事の一覧も表示できるようにします。
MovableTypeでは記事の一覧を表示するのにMTEntriesタグで簡単に表示することができましたが、WordPressはちょっとだけ複雑です。
<?php if(have_posts()) : while(have_posts()) : the_post(); ?> ~記事の表示~ <?php endwhile; else: ?> ~記事がないときの処理~ <?php endif; ?>
このようにWordPress内で定義されている関数を使うことになります。have_posts関数は記事があるかどうかという判断をする関数で、while構文でループさせるようです。
ループについてはこちらを参照。
The Loop – WordPress Codex 日本語版
英語版はこっち
ここで使われているPHPのifやwhileといった構文は普通
<?php if ( 条件式 )
{
~処理~
}
?>
という風に波括弧が使われますがここでは
<?php if ( 条件式 ): ?> ~処理~ <?php endif; ?>
という形が使われています。
これは知りませんでした。覚えとこ。
ループを使って記事のタイトルと本文を表示してみます。
<?php if(have_posts()) : while(have_posts()) : the_post(); ?>
<h2><a href="<?php the_permalink(); ?>" title="<?php the_title();?>"><?php the_title();?></a></h2>
<?php the_content(); ?>
<?php endwhile; else: ?>
<?php _e('Sorry, no posts matched your criteria.'); ?>
<?php endif; ?>
タイトルはh2要素でマークアップ。その下に記事本文を表示する形にしました。
ここで使ったテンプレートタグの一覧。

<?php _e('Sorry, no posts matched your criteria.'); ?>
これは記事がまったくないときの処理で、実際には「該当する投稿は見つかりませんでした。」と表示されます。_e()はローカライズするための関数だそう。配布テンプレートをみているとよくみかけます。
wp-content\languages\ja.po
の中8753行目
#: wp-content/themes/classic/index.php:31
msgid “Sorry, no posts matched your criteria.”
msgstr “該当する投稿は見つかりませんでした。”
で定義されてます。
0