WordPressの日付表示を変えたらSlimStat Analyticsまで巻き込まれた話【時刻だけ消したい】

サイト記事の投稿日時と更新日時をすっきりさせたくて、時刻を消してみました。
WordPressの投稿日時と更新日時から時刻を消したい場合は、管理画面「設定」→一般→時刻形式を空白にすると消えます。

うん、すっきり♪

気分よくなったところで、プラグイン「Slimstat Analytics」でアクセス解析を見ます……げっ!

訪問者アクセスの時刻が消えてる

どういうことかと言いますと、

WordPressの日時表示を日付だけに変更する

Slimstat Analyticsも巻き込まれて時刻が消えてしまう。

これでは困るので、AI執事のChatGPT君に相談します。

WordPressの日時表示設定はそのままにして、記事のみをテーマ側で制御すればいいんです

まず、一般的に使える汎用的なコードを紹介します。

// 投稿の日付表示だけ「年月日」に固定する
add_filter( 'get_the_date', function( $the_date, $format, $post ) {
if ( is_admin() ) {
return $the_date;
}

if ( is_singular( 'post' ) || is_home() || is_archive() ) {
return get_post_time( 'Y年n月j日', false, $post );
}

return $the_date;
}, 10, 3 );

add_filter( 'get_the_modified_date', function( $the_date, $format, $post ) {
if ( is_admin() ) {
return $the_date;
}

if ( is_singular( 'post' ) || is_home() || is_archive() ) {
return get_post_modified_time( 'Y年n月j日', false, $post );
}

return $the_date;
}, 10, 3 );

ただし、この方法は get_the_date() / get_the_modified_date() の出力にフィルターをかけるため、テーマやプラグインによっては意図しない場所の日付表示まで変わる可能性があります。
可能なら、テーマ側の日付出力部分だけを直接 get_the_date(‘Y年n月j日’) のように指定する方が安全です。

実際に私はそうしています。
記事タイトル下のメタ情報部分を別途コードで組んで、自作の統合プラグインに読み込ませる形で制御しています。
当サイトのオリジナルカスタマイズかつGeneratePress用なのでコピペには向きませんが、考え方の参考として紹介させていただきます。

<?php
if (!defined('ABSPATH')) exit;

add_filter( 'generate_show_entry_meta', '__return_true' );
add_action( 'generate_after_entry_header', function() {
if ( ! is_singular( 'post' ) ) return;
echo '<div class="custom-entry-meta-container">';
echo '<div class="meta-row taxonomy-links">';
$categories = get_the_category();
if ( $categories ) {
foreach ( $categories as $category ) {
printf( '<a href="%1$s" class="meta-cat-badge">%2$s</a>',
esc_url( get_category_link( $category->term_id ) ),
esc_html( $category->name )
);
}
}
$tags = get_the_tags();
if ( $tags ) {
foreach ( $tags as $tag ) {
printf( '<a href="%1$s" class="meta-tag-item">#%2$s</a>',
esc_url( get_tag_link( $tag->term_id ) ),
esc_html( $tag->name )
);
}
}
echo '</div>';
echo '<div class="meta-row date-author">';
$published_date = get_the_date( 'Y年n月j日' );
$modified_date = get_the_modified_date( 'Y年n月j日' );
printf(
'<time class="entry-date published" datetime="%1$s">%2$s</time>',
esc_attr( get_the_date( 'c' ) ),
esc_html( $published_date )
);
if ( $modified_date !== $published_date ) {
printf(
'<span class="updated-date">(更新: <time class="updated" datetime="%1$s">%2$s</time>)</span>',
esc_attr( get_the_modified_date( 'c' ) ),
esc_html( $modified_date )
);
}
echo '</div>';
echo '</div>';
}, 15 );

これでSlimStatのアクセス日時が元に戻りました。

案外、同じトラブルに直面する人は多いのではないかと思います。
記事とSlimStat Analyticsの表示のどちらかを諦めるのが手っ取り早くはありますが、

それでも諦めたくない方はチャレンジしてみてください!

 

スポンサーリンク
天満川 鈴のプロフィール画像
WRITTEN BY

天満川 鈴

未経験からWEB業界に入り、現在はWEBディレクターとして実務に従事。 要件整理・導線設計・コンテンツ構成などを学びながら、日々改善を重ねています。 AIを活用したコンテンツ制作・効率化を強みとし、プロンプト設計を含めた制作フローの最適化にも取り組んでいます。
本サイトでは、WordPressやサイト制作に関する試行錯誤・検証内容を中心に発信。 技術検証の一環として、KUSANAGI公式サイトにて記事を2回紹介いただきました。

RECOMMENDED INFRASTRUCTURE

私はConoHa以外を勧めない。

2016年からずっとConoHaを使い倒してきました。知人に「一番いいサーバーは?」と聞かれたら、迷わずここを教えます。

レンタルサーバーナンバーワンを誇る高速環境であることはもちろん。私が「黒い画面って何?」というド素人からサイト制作のプロになれたのは、傍らにずっとこのはちゃんがいてくれたから。
私がConoHaを使い続ける、嘘偽りない理由です。

※ConoHaに初めて入会の方限定。
本CTAの画像もしくはボタンを押してWINGパック12か月以上を契約すると、最大5000円割引してもらえます。

公式サイトで詳細を見る
× 閉じる