Дата комментария
-
Код покажите, которым список комментариев у вас выводится.
причем выглядит как ссылка и при клике по ней переносит пользователя в конец страницы
Это нормально. Он переносит по якорю к этому комментарию (комментарий оказывается на самом верху экрана, если длина страницы позволяет).
Извините, я пока мало что понимаю в РHP. Наверное, вот этот код:
<ol class="commentlist"> ?php wp_list_comments( array( 'callback' => 'ready_ecommerce_comment' ) ); ?> </ol>
Это нормально. Он переносит по якорю к этому комментарию
Что ж тут нормального? Эта кракозябра в виде ссылки стоит перед самим комментом, а при клике переносит вниз прямо в футер, где никакого комментария нет и в помине. Зачем такой якорь нужен?
Этот код, да. А в
ready_ecommerce_comment()
у вас что?Традиционно ссылка под датой является якорем к самому комментарию. Если у вас ссылка работает некорректно, то нужно исправлять, конечно. А сама по себе ссылка и перенос в порядке вещей. Но я же не могу угадать, куда что у вас переносит, сегодня хрустальный шар на полировке.
Наверное, вот это:
function ready_ecommerce_comment( $comment, $args, $depth ) {
Я, вероятно, непонятно описала проблему. Ссылка/якорь с такими знаками
%A %B %e%q, %Y at %I:%M %p появляется не под датой, а вместо даты. И переносит она не на комментарий. Она и так стоит прямо перед комментарием. Она переносит в футер к второстепенному меню. Комментариев там нет. Смотрю исходный код страницы в браузере и там вообще никакого намека на ссылку. Эти знаки там стоят как обычный текст.Это и должна быть дата, но вместо подстановки самой даты выводиться формат. У вас и ссылка работает не правильно, видимо. Это понятно. Я говорю о том, как правильно должно быть.
Саму функцию нашли, а что внутри-то покажите.
Вот это оно? Простите, для меня пока что php — китайская грамота.
<?php } endif; if ( ! function_exists( 'ready_ecommerce_comment' ) ) : function ready_ecommerce_comment( $comment, $args, $depth ) { $GLOBALS['comment'] = $comment; switch ( $comment->comment_type ) : case 'pingback' : case 'trackback' : ?>
Это оно, только вы до конца функцию покажите. Вот там фигурная скобка открылась — это начало. А где она закроется — конец. Целиком покажите, что внутри фигурных скобок.
Теперь вроде целиком:
function ready_ecommerce_comment( $comment, $args, $depth ) { $GLOBALS['comment'] = $comment; switch ( $comment->comment_type ) : case 'pingback' : case 'trackback' : ?> <li class="post pingback"> <p> <?php _e( 'Pingback:', 'ready_ecommerce' ); ?> <?php comment_author_link(); ?> <?php edit_comment_link( __( '(Edit)', 'ready_ecommerce' ), ' ' ); ?> </p> <?php break; default : ?> <li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>"> <article id="comment-<?php comment_ID(); ?>" class="comment"> <footer> <div class="comment-author vcard"> <?php echo get_avatar( $comment, 40 ); ?> <?php printf( __( '%s <span class="says">says:</span>', 'ready_ecommerce' ), sprintf( '<cite class="fn">%s</cite>', get_comment_author_link() ) ); ?> </div> <!-- .comment-author .vcard --> <?php if ( $comment->comment_approved == '0' ) : ?> <em> <?php _e( 'Your comment is awaiting moderation.', 'ready_ecommerce' ); ?> </em><br /> <?php endif; ?> <div class="comment-meta commentmetadata"> <a href="<?php echo esc_url( get_comment_link( $comment->comment_ID ) ); ?>"> <time pubdate datetime="<?php comment_time( 'c' ); ?>"> <?php /* translators: 1: date, 2: time */ printf( __( '%1$s at %2$s', 'ready_ecommerce' ), get_comment_date(), get_comment_time() ); ?> </time> </a> <?php edit_comment_link( __( '(Edit)', 'ready_ecommerce' ), ' ' ); ?> </div> <!-- .comment-meta .commentmetadata --> </footer> <div class="comment-content"> <?php comment_text(); ?> </div> <div class="reply"> <?php comment_reply_link( array_merge( $args, array( 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?> </div> <!-- .reply --> </article> <!-- #comment-## --> <?php break; endswitch; }
Здравствуйте, NicaNed, на этом сайте установлен qTranslate? Характерная для него проблема. Если так, то, вероятно, в настройках плагина установлено Use emulated date function.
С такой настройкой корректно работает код с установленным форматированием даты и времени
get_comment_date('d M, Y'), get_comment_time('H, i')
Для
get_comment_date(), get_comment_time()
(без форматирования)
корректно работает опция Use strftime instead of date.Но при этом надо обратить внимание на то, как выводятся даты записей, если они уже отформатированы, например
get_the_date('j M. Y')
то при strftime instead of date вместо даты будет выводиться j M. YВ общем, надо привести к одному виду функции вывода даты / времени и выбрать соответствующую настройку.
Полезная ссылка
http://codex.wordpress.org/Formatting_Date_and_Timevjpo, огромное Вам спасибо, дату и время настроила благодаря Вашим советам. Только время показывается с запятой вместо двоеточия: 05 Jan, 2014 at 20, 21 Можно ли это исправить?
Может, подскажете еще, как избавиться от якоря, которым является дата и время. Иначе этот якорь уносит от комментария в футер.Двоеточие
get_comment_time('H:i')
Для этого и была полезная ссылка )Избавиться от якоря можно, удалив
<a href="<?php echo esc_url( get_comment_link( $comment->comment_ID ) ); ?>">
и
</a>
Почему уносит в футер — сейчас как-то не соображу.Двоеточие get_comment_time(‘H:i’)
Я так делала. Результата нет. И якорь почему-то не желает удаляться.(( Ссылки уже нет в functions.php, а якорь по-прежнему есть, но хоть не уносит теперь в футер, а перемещает всего на одну строку вниз к комментарию.
Результат есть, но кэш (браузер? wp кэш-плагин, сервер?) показывает старую версию.
Попробуйте перезагрузить страницу в браузере ↻ или Ctrl+F5.Перезагрузила страницу раз 10. Cтоит плагин WP Super Cache. Если что-то меняю в CSS, это видно на сайте сразу. А вот с отображением времени ничего не происходит.(
Спасибо, vjpo, за Вашу помощь. Действительно, некоторые настройки плагина кэширования были не доработаны. Теперь все в порядке и с якорем и с временем. Огромное Вам спасибо и всего наилучшего!!
- Тема «Дата комментария» закрыта для новых ответов.
(@nicaned)
10 лет, 8 месяцев назад
Здравствуйте! Помогите, пожалуйста, разобраться. При публикации комментария вместо даты и времени его публикации на сайте появляется вот это:
%A %B %e%q, %Y at %I:%M %p , причем выглядит как ссылка и при клике по ней переносит пользователя в конец страницы. В админке дата отображается нормально: Submitted on 2014/01/05 at 20:21.
Подскажите, пожалуйста, что может быть причиной? Заранее спасибо.