サイドバーの10年日記が9時間ずれていたことに今更ながら気が付いたとさ。

Wordpressデフォルトタイムゾーン??ローカルタイム??

朝っぱらから自分のブログを見ることなんてほとんどと言っていいほどないので全然気が付かなかった。

以前、ブログを10年日記みたいにしたいと思って色々検索し、ほぼ自己流で実装してみたサイドバーの「〇年前の今日は何してた?」。

ついこの間、前日の日付の過去記事が表示されていることに気が付いた。

「へ?なんで??」

WordPressの設定のタイムゾーンは「UTC+9」。

「いいよね、これで。」

なぜか午後に見てみると、ちゃんと今日の日付の過去記事が表示されている。

「あれ、勘違い?」

だけど、次の日の朝、やはり前日の日付の過去記事が・・・

まあ、誰もそんな事気にもしないだろうけど、この不思議な現象はなんとなく居心地が悪い。

そこで、またもやお助けマンXakuro Systemの石鷹さんにHELPを求めてみた。

そうこうしていて、午前9時すぎに見たら、今日の日付になっていた。

ここで、なんとなくやっぱりタイムゾーンの”+9”が妙に引っかかるわけですよ、素人ながら。

そしたら、やっぱりXakuro Systemの石鷹さんが見つけてくださいました。

ねこもりやのほぼほぼ自作のコードの欠点を。

今日まで、使っていたコードがコチラ。

<?php
$today = getdate();
query_posts( 'monthnum=' . $today["mon"] . '&day=' . $today["mday"] . '&orderby=rand&showposts=3' );
?>
<ul class="old_post wpp-list wpp-list-with-thumbnails">
<?php while (have_posts()) : the_post(); ?>
<li class="alllink clearfix"><a  href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php if (has_post_thumbnail()) : ?><?php the_post_thumbnail('side_thumbnail', array('class' => 'wpp-thumbnail')); ?></a><?php else : ?>
<img src="<?php bloginfo('home'); ?>/wp-content/images/default1-80x80.png" class="wpp-thumbnail"></a>
<?php endif; ?><p><a href="<?php the_permalink(); ?>" class="wpp-post-title"><?php the_title(); ?></a><span class="wpp-meta post-stats"><span class="views"><?php if ( function_exists ( 'wpp_get_views' ) ) { echo wpp_get_views ( get_the_ID() ); } ?>views</span>|<?php the_time("Y年n月j日(D)"); ?></span></p> 
<p class="linkarea"><a href="<?php the_permalink(); ?>">more...</a></p>
</li>
<?php endwhile;?>
</ul>
<?php wp_reset_query(); ?>

そして、アドバイスによって書き換えたのがコチラ!

<?php
list( $year, $month, $day ) = explode( ',', date_i18n( 'Y,n,j' ) );
$args = array( 'posts_per_page' => 3, 'orderby' => 'rand', 'order' => 'DESC', 'monthnum' => $month, 'day' => $day );
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) : ?>
    <ul class="old_post wpp-list wpp-list-with-thumbnails"">
    <?php while ( $the_query->have_posts() ) :
        $the_query->the_post(); ?>
        <li class="alllink clearfix"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php if (has_post_thumbnail()) : ?><?php the_post_thumbnail('side_thumbnail', array('class' => 'wpp-thumbnail')); ?></a><?php else : ?>
<img src="<?php bloginfo('home'); ?>/wp-content/images/default1-80x80.png" class="wpp-thumbnail"></a>
<?php endif; ?>
<p><a href="<?php the_permalink() ?>" class="wpp-post-title"><?php the_title(); ?></a>
<span class="wpp-meta post-stats"><span class="views"><?php if ( function_exists ( 'wpp_get_views' ) ) { echo wpp_get_views ( get_the_ID() ); } ?>views</span>|<?php the_time("Y年n月j日(D)"); ?></span></p> 
<p class="linkarea"><a href="<?php the_permalink(); ?>">more...</a></p>
</li>
    <?php endwhile;
    wp_reset_postdata(); ?>
    </ul>
<?php else: ?>
    <p>残念ながら投稿が見つかりません。</p>
<?php endif;?>

まず、ダメダメだったところとして、

WordPress のデフォルトタイムゾーンは、タイムゾーンの設定に関わらず常に UTC に設定されています。

ってことで、設定に関わらず「9時間」ずれてた。なんと、5年以上も気づかずに。

ねこもりやは説明できそうにありませぬ。

WordPress デフォルトタイムゾーンとローカルタイム

そして、もう一つ、

「query_posts()」は非推奨ってことを知りつつ、放置していた。(ってか、まだほかでも使ってる、、、)

2019/1/17 他の「query_posts()」 も修正しました!

で、Xakuro Systemの石鷹さんに丸投げしてコードを書いてもらっちった(´艸`*)てへ

※コード内のclassなどはねこもりやのサイト用です。
プラス、クリック範囲を広げるために色々やってます(*^^*)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA