2012-02-10 9 views
0

以下のコードは、私のfunctions.phpのコメントテンプレートです。すべてのコメントへの返信リンク付きのコメントを出力します。誰かがコメントに返信するときは、コメントテキスト以下コメントとコメントの日付形式が一貫していませんWordpressの返信リンク

Name of comment author + Comment dateへの返信で」

を言います。そのリンクをクリックすると、簡単に「コメント返信リンク」と呼ばれ、元のコメントに戻ります。これまでのところすべてが順調です。

最初のprintf関数にある、私が選択した形式( 'M j Y H:i')ですべてのコメントの日付が正しく表示されます。コメント日付は、 "Feb 10 2012 10:35"という形式で表示されますが、 "comment-reply-link"の日付は2012-02-10 10:35:17とはまったく異なる日付形式で表示されます。ご覧のとおり、秒も表示されます。

次のコードの最後のprintf関数は、 "comment-reply-link"を出力します。一貫性のない形式がどこから来るのか分かりません。管理パネルの自分の設定でも、comments-template.phpで見つけることもできません。間違ったフォーマットも表示される唯一の場所は、phpmyadminでデータベースを開くとコメントテーブルのcomment_dateカラムにあります。

誰かがコメントの投稿と同じ日付形式(「M j Y H:i」)で「コメント - 返信リンク」を手に入れることができれば非常に感謝します。

function mytheme_comment($comment, $args, $depth) { 
     $GLOBALS['comment'] = $comment; 
     switch ($comment->comment_type) : 
      case '' : 
     ?> 
     <li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>"> 
      <div id="comment-<?php comment_ID(); ?>"> 
      <div class="comment-body"> 
      <div class="comment-meta commentmetadata"> 
      <div class="commenter-info"><span class="commenter"><?php printf(__('%s', 'mytheme'), sprintf('<cite class="fn">%s</cite>', get_comment_author_link())); ?><br/></span><!-- commenter --> 
      <div class="comment-date"><?php 
        /* translators: 1: date, 2: time */ 
        printf(__('%1$s', 'mytheme'), get_comment_date('M j Y H:i')); ?><?php edit_comment_link(__('Edit &rarr;', 'mytheme'), ' '); 
       ?></div><!-- comment-date --> 
      </div><!-- commenter-info --> 
      <div class="comment-gravatar"><?php echo get_avatar($comment, 65); ?></div> 
      <span class="reply"> 
       <?php comment_reply_link(array_merge($args, array('depth' => $depth, 'max_depth' => $args['max_depth']))); ?> 
       <a class="comment-reply-link" href="?replytocom=<?php comment_ID(); ?>#respond" onclick="return addComment.moveForm('comment-<?php comment_ID(); ?>', '<?php comment_ID(); ?>', 'respond', '<?php echo $post->ID; ?>')">Reply</a> 

      </span><!-- reply --> 
        </div><!-- .comment-meta .commentmetadata --> 
        <div class="comment-content"> 
      <?php comment_text(); ?> 
      </div><!-- comment-content --> 
      <?php 
      if ($comment->comment_parent) { 
      $parent = get_comment($comment->comment_parent); 
      $parent_link = esc_url(get_comment_link($comment->comment_parent)); 
      printf('<span id="replyto">In reply to <a href="%1$s">%2$s %3$s</a></span>', $parent_link, $parent->comment_author, $parent->comment_date); 
      } ?> 
      <?php if ($comment->comment_approved == '0') : ?> 
      <p class="moderation"><?php _e('Your comment is moderated', 'mytheme'); ?></p> 
      <?php endif; ?> 

      </div><!-- comment-body--> 
      </div><!-- #comment-## --> 

答えて

0

$parent->comment_dateを再フォーマットする必要があるようです。前

$date = DateTime::createFromFormat('Y-m-d H:i:s', $parent->comment_date); 
$parent->comment_date = $date->format('M j Y H:i'); 

:これを追加

てみ

printf('<span id="replyto">In reply to <a href="%1$s">%2$s %3$s</a></span>', $parent_link, $parent->comment_author, $parent->comment_date); 
+0

ありがとうございました。あなたの提案は、論理的に見えますが、それは致命的なエラーが返されます:?。未定義のメソッドのDateTimeに呼び出し:: createFromFormat()」あなたは 'PHP 5> = 5.3.0'を必要とする、あなたが実行しているPHPのバージョンは何 – sarytash

+0

を – nickb

+0

私はテストファイルを作成しました – sarytash

関連する問題