• 解決済 skunk0915

    (@skunk0915)


    こんにちは。いつもお世話になっております。

    ブログの投稿日時にスタイルを当てるため、年月日をバラして表示するにはどのようなテンプレートタグを使えばいいのでしょうか。
    日付といえばthe_date();なので、ためしに

    <div class="date">
    	<div class="year"><?php the_date('Y'); ?></div>
    	<div class="month"><?php the_date('n'); ?></div>
    	<div class="date"><?php the_date('j'); ?></div>
    </div>

    としてみたのですが、月日が表示されません。the_dateはⅠページにⅠ回のようなルールがあるんでしょうか。
    見るからに無駄が多いコードなのはなんとなく分かるんですが…。

    ↓ここのブログのような日付表示にしたいのですが、ブラウザ上のソースからではどのようなテンプレートタグを使っているのか判別できないため、よろしければご協力お願い致します。
    http://rimo-trogen.com/wp/

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • こんにちは。

    代わりにget_the_time()を使うと如何でしょうか?

    http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/get_the_time

    <div class="date">
    	<div class="year"><?php echo(get_the_time('Y')); ?></div>
    	<div class="month"><?php echo(get_the_time('n')); ?></div>
    	<div class="date"><?php echo(get_the_time('j')); ?></div>
    </div>
    トピック投稿者 skunk0915

    (@skunk0915)

    おおお!できました!ありがとうございます!
    しかし…なぜdateだとできてtimeでできないんだろうか…これを理解しておかないとそのうち凄いミスにつながりそうな気がするので、そこまでしらべてみます。

    引用
    get_the_time()
    get_the_date()

    注意
    この関数は、the_date関数などから呼ばれており、呼び出す前にthe_post関数を使用しておく必要がある。

    ・・・らしいです

    トピック投稿者 skunk0915

    (@skunk0915)

    ありがとうございます!
    そういうところをきちんと知っておかないと怖いですね。

    確認したところ意図せず使っていたんですが、下記のようなループでの使用で間違いないでしょうか?

    <?php
    if( have_posts() ) : while( have_posts() ) : the_post();
    ?>
    <div class="post">
    	<h2><?php the_title(); ?></h2>
    	<div class="date">
    		<div class="year"><?php echo(get_the_time('Y')); ?></div>
    		<div class="month"><?php echo(get_the_time('n')); ?></div>
    		<div class="date"><?php echo(get_the_time('j')); ?></div>
    	</div>
    	<div class="post-txt"><?php the_content(); ?></div>
    </div>
    <?php
    endwhile;
    endif;
    ?>

    強ち間違ってはいないのですが
    get_the_time()の場合ではなくget_the_date()の時の注意です
    上記の引用先を確認してみて下さい

    さらっと書いてしまってすみません。

    日付、時間系の関数は、以下のファイルに定義されていますので、興味がありましたら見てみて下さい。

    /wp-includes/general-template.php

    get_the_date()は、投稿情報を格納したグローバル変数$postを必要としますので、これがネックになる場合があるという事かと思います。

    つまり、事前にthe_post()などが実行されて$postがロードされていないといけません。

    対してget_the_time()は、グローバル変数$postに頼らずに自らget_post()関数で投稿情報を取得します。

    似た関数ですが、このあたりが違いかと思います。

    追記しておきます。

    the_date()は、内部的にget_the_date()を使っており、the_time()は、get_the_time()を使っています。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「記事の日付にスタイルを与えたい」には新たに返信することはできません。