Cocoonフォーラム

サイト内検索
書き込みの前に以下の3点をご確認ください。
  1. 1つのトピックにつき1つの質問を書き込んでください
  2. 不具合・カスタマイズ対象ページのURLを提示高速化を無効にしてください
  3. 該当部分のキャプチャ・環境情報とともに書き込んでいただけると助かります

何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。

不具合・カスタマイズ対象ページのURL:

相談内容:

不具合の発生手順:

解決のために試したこと:

※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:

※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。

環境情報の取得方法はこちら。
https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
https://wp-cocoon.com/theme-trouble/

フォーラム利用ガイドリンク

  1. フォーラムガイドライン
  2. よくある質問と答え(FAQ)
  3. サポート対象外のケース
  4. 原因不明の不具合用トラブルシューティング
  5. トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw
  6. 真っ白画面でのエラーメッセージの確認方法
  7. ブラウザ環境チェックツール
  8. Cocoonカスタマイズ依頼

フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。

このフォーラムには初心者の方も多く参加されています。質問に不慣れな方も安心して相談できるよう、できるだけ穏やかな言葉でご案内いただけますと幸いです。

エントリーカードに日付が表示されない場...
 
通知
すべてクリア

[解決済] エントリーカードに日付が表示されない場合がある

7 投稿
2 ユーザー
2 Reactions
88 表示
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 4年前
投稿: 4557
トピックスターター  

あるサイトを見た際、以下のバグを発見した。
知りえた情報だけで状況を報告します。

●設定

投稿日と更新日の一方を出力する。

[Cocoon設定]→[インデックス]
→投稿日を表示するをオフ
→更新日を表示するオン★


●バージョン
Version: 2.9.3.5


●現象

投稿日=更新日なのに、「人気記事ウィジェット」には更新日が同じ日付で表示される。
また、エントリーカードに日付部分のHTMLが出力されない。

ただし、本文は投稿日のみとなる。


●補足

投稿のメタ情報

<meta property="article:published_time" content="2021-03-02T10:35:00+09:00">
<meta property="article:modified_time" content="2021-03-02T10:35:00+09:00">★

投稿の日付

<div class="date-tags">
  <div class="e-card-info">
    <span class="post-date">
      <span class="far fa-clock" aria-hidden="true"></span>
      <time class="entry-date date published updated" datetime="2021-03-02T10:35:00+09:00" itemprop="datePublished dateModified">2021-03-02</time>★
    </span>
    <span class="post-comment-count">
      <span class="far fa-comment comment-icon" aria-hidden="true"></span>0
    </span>
  </div>
</div>

「人気記事」ウィジェット

<div class="popular-entry-card-info widget-entry-card-info card-info">
  <div class="popular-entry-card-date widget-entry-card-date">
    <span class="popular-entry-card-post-date widget-entry-card-post-date post-date">
      <span class="far fa-clock" aria-hidden="true"></span>
      <span class="entry-date">2021-03-02</span>
    </span>
    <span class="popular-entry-card-update-date widget-entry-card-update-date post-update">★
      <span class="fas fa-history" aria-hidden="true"></span>
      <span class="entry-date">2021-03-02</span>
    </span>
  </div>
  <span class="popular-entry-card-comment widget-entry-card-comment card-comment post-comment-count">
    <span class="far fa-comment comment-icon" aria-hidden="true"></span>0
  </span>
</div>

エントリーカードに日付情報が出力されない

<div class="entry-card-meta card-meta e-card-meta">
  <div class="entry-card-info e-card-info">★
    <span class="post-comment-count">
      <span class="far fa-comment comment-icon" aria-hidden="true"></span>0
    </span>
  </div>
  <div class="entry-card-categorys e-card-categorys">
    <span class="entry-category cat-label-4">忘備録</span>
  </div>
</div>

●推定原因

https://github.com/xserver-inc/cocoon/blob/f70df16aafb5796ee6c17f5ec8b3b983ae17846c/lib/utils.php#L1064-L1065

一見20210302と同じようだが型が違うのでは?

結果、関数get_update_timeの戻り値がnullにならない場合があるのでは
また、関数get_the_date_tagsは、投稿日<更新日のガード処理が付いているが、関数get_update_timeにはない。


●対応

一旦、Unix時間で取得し型を揃えた後、単位を年月日で比較する。

if ( !function_exists( 'get_update_time' ) ):
function get_update_time($format = null, $post_id = null) {
  if (empty($format)) {
    $format = get_site_date_format();
  }

  // タイムスタンプ(Unix時間)を直接取得
  $ptime = get_post_timestamp($post_id, 'date');★
  $mtime = get_post_timestamp($post_id, 'modified');★

  // wp_dateで「年月日」の文字列に変換して比較
  $p_ymd = wp_date('Ymd', $ptime);
  $m_ymd = wp_date('Ymd', $mtime);

  // 同じ日付、または投稿日のほうが新しい場合は更新日をなしとする
  if ($p_ymd === $m_ymd || $ptime >= $mtime) {
    return null;
  } else {
    return wp_date($format, $mtime);
  }
}
endif;

 


●他のサイト例

Version: 2.9.3.3

https://tokyogirlslife.com/healthcare/shinkeigaku-rougan/

●現象

投稿のメタ情報で以下のように更新日付の方が公開日より古いと言う現象となっている。(予約投稿?)

<meta property="article:published_time" content="2025-07-15T09:34:00+00:00">★
<meta property="article:modified_time" content="2025-07-13T07:35:36+00:00">

同様に該当の、エントリーカードの日付のHTML自体が出力されていない

投稿ページの日付は関数get_the_date_tagsのガードで投稿日のみとなる。
原因として、SEOの関数get_seo_update_timeに、日付逆転のガードがないので、不正となる?

<div class="date-tags">
  <span class="post-date">
    <span class="far fa-clock" aria-hidden="true"></span>
    <time class="entry-date date published updated" datetime="2025-07-15T18:34:00+09:00" itemprop="datePublished dateModified">2025-07-15</time>
  </span>
</div>

このトピックは2日前 2回から大門未知子に変更されました

   
わいひら reacted
引用
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 4年前
投稿: 4557
トピックスターター  

●追記

該当サイトの方に調べて頂いた結果を添付します。

確認したところ、古い投稿記事内で「更新しない」が選択されており、更新日が” -0001年11月30日 00:00”となっていたため表示されなかったようです。

get_update_timeとget_seo_update_timeに、get_the_date_tagsと同じように、投稿日、更新日のねじれガードを追加すべきかと思います。

 

 



   
返信引用
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 4年前
投稿: 4557
トピックスターター  

●発生のアルゴリズム

再現します。

https://github.com/xserver-inc/cocoon/blob/f70df16aafb5796ee6c17f5ec8b3b983ae17846c/lib/custom-fields/update-field.php#L130-L139

新規投稿の時、「更新日の変更」パネルで「更新しない」を選択し保存した。
この時、カスタムフィールドlast_modifiedは空、update_levelはlowとなる。

last_modifiedが空のまま、post_modifiedに保存したのでDBが不正値となる。

以下で更新日を取得した際、falseが返却され、投稿日≠更新日となる。

https://github.com/xserver-inc/cocoon/blob/f70df16aafb5796ee6c17f5ec8b3b983ae17846c/lib/utils.php#L1064

object(WP_Post)#1711 (24) {
  ["ID"]=>  int(98154)
  ["post_date"]     =>  string(19) "2026-07-13 11:35:55"
  ["post_date_gmt"] =>  string(19) "2026-07-13 02:35:55"

  ["post_modified"]     =>  string(19) "0000-00-00 00:00:00"★
  ["post_modified_gmt"] =>  string(19) "2026-07-13 02:35:55"
}

この投稿は19時間前 2回ずつ大門未知子に変更されました

   
返信引用
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 4年前
投稿: 4557
トピックスターター  

●補足

確認したところ、古い投稿記事内で「更新しない」が選択されており、更新日が” -0001年11月30日 00:00”となっていたため表示されなかったようです。

新規投稿で「更新しない」とするとカスタムフィールドは空となる。

再度、該当の投稿を開くと、図示の通り更新日が-0001年で表示される。

 



   
わいひら reacted
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 8年前
投稿: 18554
 

ご指摘ありがとうございます。
更新日関係の問題を修正させていただきました。
https://github.com/xserver-inc/cocoon/commit/d9c3efcd01d4dc97ad75178b99986c9ba8b19a68



   
返信引用
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 4年前
投稿: 4557
トピックスターター  

----------------------------------------------
テーマ名:Cocoon
バージョン:2.9.3.8
カテゴリー数:18
タグ数:123
投稿数:1756
固定ページ数:13
ユーザー数:1
----------------------------------------------

新規投稿で、更新日の変更設定で「更新しない」と場合、カスタムフィールドlast_modifiedに投稿日が保存され、対策されていることを確認しました。

但し、SEOのarticle:published_time>article:modified_timeについては発生条件が不明のため、確認できていません。

本件を一旦クローズとします。



   
返信引用
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 4年前
投稿: 4557
トピックスターター  

●お礼

本件に関しまして、原因調査にご協力いただきましたサイト管理者様、誠にありがとうございました。
この場を借りて、迅速かつ丁寧なご対応に心より感謝申し上げます。
おかげさまで、無事に問題を特定することができました。



   
返信引用
共有:

問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。

また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。

「いいね!」機能はフォーラム登録者のみが利用できる機能です。

CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。

フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。

最近の書き込みはこちら。

詳細なカスタマイズ依頼をするならこちら。

タイトルとURLをコピーしました