WordPress: удаление времени из комментариев (дату оставляем)

Вторая техническая заметка будет посвящена управлению временем… на WordPress комментариях. И снова это не про этот блог. Все заметки здесь больше для себя, для реализации далеких планов. Так что ничего подобного здесь не увидите – все только для внутренних проектов на большой посещаемости.

Про общение

Итак, очень хочется, чтобы наши страницы комментировали. Где есть люди, где есть общение, где есть свое ядро и самому жить как-то приятнее. Но вот люди трындец как не любят общаться на сайтах – подавай им чатики и ВКонтактики.

Можно конечно полностью менять деятельность и вести аудиторию больших проектов там, но что делать с малыми? Их же как-то надо взращивать, на край увеличивать поведенческие факторы. И тут, если ваш сайт не откровенное ГМО, самое время обратить внимание на 2 фактора:

  • Наличие призывов писать комментарии, задавать вопросы и делиться своим мнением прямиков в тексте – без этого все работает, но лишним не будет.
  • Самостоятельное написание первых комментариев.

Нет, люди сразу не ринутся ничего писать. Они вообще к вам не за тем пришли – у них свои проблемы, а тут на их пути встречаетесь вы со своим ламповым клубом.

Как итог – писать не будут, но шансы увеличит.

Проблема

А далее что-то запарились мы с трастом этих самых липовых комментариев. Рядом с ними стояла дата и время:

И вот представьте – публикуется статья, к ней сразу же пишется с десяток комментариев на лету, что аж начинает ругаться антиспам Вордпресса (да, у него и такое есть). А в итоге – все комментарии в одну дату и с периодичностью в 1 минуту. Подозрительно, правда? А нужно ведь натурально.

Решения

Что можно сделать:

  1. Не писать комментарии – не наш вариант.
  2. Писать комментарии постепенно – можно, но работа на конвейере всегда быстрее. Отложенные действия требуют лишних времяресурсов. На большом масштабе не наш вариант.
  3. Написать программу для отложенных комментариев – можно, но не захотелось.
  4. Править даты – в ВП по умолчанию такого нет. Можно написать свой плагин, но тоже время на правки. Можно править через базу данных – но тоже костыли, и требует времени.
  5. Можно отключить дату и время – можно и так. Тем более темы многие это поддерживают. Но тут встает дилемма – будут ли на комментарии без даты отвечать пользователи (скорее всего будут, не проверял), и как к этому будут относиться поисковики – все-таки какие-то обновления на сайте, да еще если обернуть в семантику <time>, то и тем паче напрашивается логика оставлять. Но тут на любителя – удалить и не париться тоже будет классным решением.
  6. Оставить дату, удалить время – вот такое решение понравилось больше всего. На новые статьи мы все равно делаем пролив, и в первый день всегда наваливается много комментариев. А в другие дни, если уж пошли люди из поиска, все выглядит вполне логично.

Как удалить время?

Итого задача сводится к удалению времени из комментариев на WP, но сохранению даты. Вроде бы просто. Но не тут-то было. Стандартные комментарии определяются классом Walker…

Итого нужно:

  1. Переопределить Walker.
  2. Изменить в нем формат вывода.
  3. На страницах добавить вместо стандартного свой обработчик.

Технически это будет выглядеть примерно так:

Шаг 1. В function.php создаем свой обработчик Walker или callback.

Шаг 2. Выводим его на нужной странице вместо стандартного – т.е. заменяем в коде исходные функции вывода на свои.

Walker

<?php
wp_list_comments( array(
‘walker’ => new Walker_Comment()
) );

Callback

<?php wp_list_comments(‘type=comment&callback=format_comment’); ?>

И мы это сделали… а потом натянули другую тему и поняли, что а чего мы парились-то.

Как удалить время – тема Root?

А все дело в том, что была натянута тема Root. А там все это сделали за нас.

Дату и время целиком удалить совсем просто:

Блоки и расположение – Комментарии – Удалить дату в комментариях

Со временем придется немного поколдовать, но и здесь нет особых проблем. Коллбэк уже был переопределен и его смело можно править в файлах темы (у кого дочерние – переносим на дочерние темы).

/wp-content/themes/root/inc/comments.php

Все расположено в 111 строке. Меняем на свой нужный формат:

<time class=»comment-time» itemprop=»datePublished» datetime=»<?php comment_date(‘Y-m-d’) ?>»><?php comment_date(‘d.m.Y’) ?></time>

Все!

TroBox
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: