カテゴリー
テンプレートタグ

the_time()

現在の投稿の公開時刻を表示します。

位置

ループ内

引数

様々な様式で、時刻だけでなく西暦、年、月、日を表示させることができます。
詳しくは、Codex「日付けと時間の書式」へどうぞ。

コード記述例

基本の記述

<?php the_time(); ?>  →  12:09 AM
<?php the_time('Y年n月j日 l'); ?>  →  2008年4月1日 火曜日
<?php the_time('Y.m.d'); ?>  →  2015.03.09
カテゴリー
テンプレートタグ

query_posts()

WordPress ループ で表示される投稿を変更するために使います。
私の場合、一番お世話になっているタグです。グローバル変数$wp_queryを書き換えてしまうので、ループの最後でリセットするのを忘れずに。
リセットをしないと、あとに続くループの挙動がおかしくなります。

※query_posts() 関数はメインの WordPress ループだけを変更するためのものです。新たなループを作るためのものではありません。メインループの他にループが必要な場合は、get_posts() を使ってください。

意外な感じがするのですが(私だけかも?)、query_posts()で固定ページもひっぱれます

位置

ループの前

引数

普段あまり使わないけれど便利なものだけピックアップします!

  • post_status…ステータス・公開状態で引っ張れます。
    例)post_status=private
    …非公開記事

その他はCodexへどうぞ。

コード記述例

基本の記述

<?php query_posts('引数'); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
//ここに表示したい内容を入れる
<?php endwhile; endif; ?>
<?php wp_reset_query(); ?>

 

 

投稿のカテゴリースラッグがaaaの記事を表示する

<?php query_posts('category_name=aaa'); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
//ここに表示したい内容を入れる
<?php endwhile; endif; ?>
<?php wp_reset_query(); ?>

 

 

投稿のカテゴリースラッグがaaaまたはbbbまたはcccのとき、999個まで記事を表示する

<?php query_posts($query_string . "cat=" .(get_category_by_slug('aaa')->term_id .",".get_category_by_slug('bbb')->term_id .",".get_category_by_slug('ccc')->term_id) . "&showposts=999"); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
//ここに表示したい内容を入れる
<?php endwhile; endif; ?>
<?php wp_reset_query(); ?>

 

 

固定ページをだす

<?php query_posts('post_type=page'); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
//ここに表示したい内容を入れる
<?php endwhile; endif; ?>
<?php wp_reset_query(); ?>

 

 

固定ページでページング

<ul>
<?php
global $paged;
query_posts('category_name=example&showposts=3&paged=' . $paged); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; endif; ?>
<?php posts_nav_link(' | ','前の記事','次の記事'); ?>
<?php wp_reset_query(); ?>
</ul>

 

 

カスタム投稿タイプ「aaa」または「bbb」でカスタムフィールドのKeyが「xyz」の記事を表示

<?php
$args = array(
'post_type' =&gt; array('aaa','bbb'),
'meta_key' =&gt; 'xyz',
);
query_posts($args); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
//ここに表示したい内容を入れる
<?php endwhile; endif; ?>
<?php wp_reset_query(); ?>
カテゴリー
テンプレートタグ

wp_dropdown_categories()

カテゴリーリストを出す際、ドロップダウンにする必要のある案件に出くわしました。
これは、wp_list_categories()をつかってfor文…いやforeach文!?などと考えつつ調べていたら、こんな便利なタグがありました。何でもそろってるなぁWordPress…。

ちなみに「カテゴリー」ではなく「投稿の月別アーカイブ」へのリンクをドロップダウンにするときはwp_get_archives()をつかいます。

引数

Codexへどうぞ

コード記述例

<form action="<?php echo get_home_url(); ?>" method="get">
<?php wp_dropdown_categories(); ?>
<input type="submit" name="submit" value="GO" />
</form>

 

カテゴリー
テンプレートタグ

get_permalink()

記事のパーマリンクをPHPの値として返します。echo で出力させることもできます。
the_permalink()との違いは、引数として記事のIDを使える点です。

位置

ループ内・外

引数

  • id (整数)- 記事の数字ID。ループ内で使用した場合、デフォルト値は表示中記事のID。

コード記述例

<p><a href="<?php echo get_permalink(5); ?>">記事ID5へのリンク</a></p>

 

カテゴリー
テンプレートタグ

esc_html()

HTMLタグをエスケープしてくれます。
例えば、HTML文の中に<br>と書いた場合、改行が行われるだけで<br>というタグ自体はユーザ画面には表示されません。

esc_html()を使えば「<」は「&lt;」、「>」は「&gt;」へと置き換えられ、<br>というタグをユーザ画面で表示できます。

記述例

<br>をエスケープし、表示させる。

<?php echo esc_html('<br />'); ?>
カテゴリー
テンプレートタグ

home_url()

現在のブログのホームURLを返します。
よくにたタグに、get_home_url()があります。

引数

  • path…ホームURLからの相対パス。
  • scheme…URLスキーム。現在利用できるのは ‘http’ と ‘https’。

コード記述例

現在のブログのホームURLを表示
例)http://example.ne.jp

<?php echo home_url(); ?>

 

現在のブログのホームURL直下に「/abc」を追加しURLスキームを「https」に変更。
例)https://example.ne.jp/abc

<?php echo home_url('/abc','https'); ?>
カテゴリー
テンプレートタグ

get_page_uri()

固定ページのスラッグを取得します。

例えば企業サイトなどで、ページ毎にイメージ画像を変えたいとき、今まで私はif文による条件分岐でハードコードしてました。これが地味に時間を食うのです。。。

例)

<h2>
<?php // この会社について
if(is_page('about')): ?>
<img src="img/about.jpg">
<?php // 製品について
elseif(is_page('product')): ?>
<img src="img/product.jpg">
<?php // お問い合わせ
elseif(is_page('contact')): ?>
<img src="img/contact.jpg">
・
・
・
<?php
endif; ?>
</h2>

この面倒くさいif文が、下記のように1行ですんでしまいます。
画像名にページスラッグを規則的に使っている場合に限定されますが。
(というか是非そのような画像名にしましょう)

 

<h2><img src="img/<?php echo get_page_uri($post->ID);?>.jpg"></h2>

 

コードは必要最小限に書くことが、解りやすさ・速さにつながるんだなーと痛感します。

カテゴリー
テンプレートタグ

get_the_category()

記事のカテゴリー情報を配列で返します。

※参考にさせてい頂いたサイト様:WordPress私的マニュアル

 

位置

ループ内・外

引数

なし

変数

カテゴリーID cat_ID
カテゴリー名 cat_name
カテゴリースラッグ category_nicename
カテゴリー説明文 category_description
親カテゴリーID。ない場合「0」 category_parent
カテゴリーに属する記事数 category_count

※カテゴリーに関する部分のみ抜粋

コード記述例

カテゴリ名を表示

<?php // カテゴリ名を表示
$cat = get_the_category();
$cat = $cat[0];
echo $cat->cat_name;
?>

 

 

カテゴリー
テンプレートタグ

get_home_url()

マルチサイトで<?php bloginfo(‘url’); ?>の代わりに使うとGoodです。引数にブログIDを指定することにより、任意のブログのURLを取得することができます。
このタグを知るまで、いちいちswitch_to_blog();を使っていました^^;

引数

  • blog_id…ブログのID
  • path…ホームURLからの相対パス。
  • scheme…URLスキーム。現在利用できるのは ‘http’ と ‘https’。

コード記述例

ID2のブログのURLを表示

[html]<?php echo get_home_url(2); ?>[/html]

ID3のブログのURL直下に「/abc」を追加しURLスキームを「https」に変更。

[html]<?php echo home_url(3,’/abc’,’https’); ?>[/html]

現在のブログIDを自動的に取得してURLを吐き出す(実用性低いですがメモとして)

<?php
global $current_blog;
$this_blog_id = $current_blog->blog_id;
echo $this_blog_id;
echo get_home_url($this_blog_id);
?>

カテゴリー
テンプレートタグ

the_category()

現在の記事が属するカテゴリへのリンクを表示します。

位置

ループ内・外
※シングルページではどこに入れても問題ありませんが、アーカイブページだと入れる場所や、ページ内のループ等の要素により、思いがけないカテゴリを取得したりします。

引数

  • separator…(文字列) 各カテゴリリンクの間に表示する文字列・記号。デフォルトでは、番号なし箇条書き(<ul>)でリンクを並べます。
  • parents[オプション値]…(文字列) 記事が子(サブ)カテゴリに属するとき、カテゴリリンクで「親子」関係をどう表示するか?
    ※post_idを指定している時のみ動作するようです。
    ‘multiple’ – 親・子カテゴリへのリンクを分けて表示
    ‘single’ (初期値) – 親・子カテゴリを表示するが、リンクはまとめて子カテゴリへのリンクとなる。
    指定なし…子カテゴリのみ表示し、子カテゴリへのリンクとなる。
  • post_id…(整数) カテゴリを取得したい投稿ID。初期値は false(現在の投稿)。

 

コード記述例

<?php // 現在の記事が属するカテゴリへのリンクを<ul class="post-categories">で囲んで表示
the_category(); ?>
<?php // ID220の投稿が属する子カテゴリーへのリンクを表示する
the_category('','',220); ?>