Приветствую вас, друзья!
В процессе поиска новой работы соскучился по кодированию. Захотелось не то чтобы настрочить большую простыню кода, а покопаться с какой-нибудь небольшой задачкой. На фриланс-сайтах ничего интересного не подвернулось. Точнее, было несколько мелких работ, которые меня заинтересовали, но авторы не отвечали. А зря! Потому что я буквально за отзыв готов был их выполнить, лишь бы размять мозги. Ну, да ладно, вовремя вспомнил про свой интереснейший блог. =) И вот чем себя занял…
Помните, я писал ранее о том, как организовать на блоге подписку на комментарии с помощью плагина Subscribe To Comments? А позже была статья о том, как определить подписавшихся на комментарии. В ней я описал как можно выделить подписавшихся на ответы по email комментаторов. И вот с тех пор у меня на блоге комментарии таких читателей отмечены символом @.
Это все хорошо, но когда мне на мейл приходит сообщение о новом комментарии, то ссылка в письме ведет меня в админку, чтобы я при необходимости либо одобрил этот комментарий, либо отредактировал, либо удалил. И для того, чтобы понять подписан человек на ответ или нет, мне приходилось после одобрения комментария переходить из админки в фронтенд (т.е. в сам блог) и смотреть есть ли символ @ у данного комментария или нет. Если собачка отсутствовала, то отвечать на сообщение нет смысла, иногда даже, в таких случаях я удалял мало информативный текст.
Так вот эта “беготня” из админки в блог мне давно не нравилась и я решил выделить подписавшихся на комментарии и в админке.
Сделал я это там в двух местах:
1. На главной странице в админке /wp-admin/index.php, где есть блок “Свежие комментарии”, в котором выводятся пять последних сообщений.
На скриншоте у первого комментария можете наблюдать каким образом я отметил наличие подписки – текст “Подписан” (зеленого цвета, жирный). У двух других, комментариев, как вы видите, такая отметка отсутствует, потому что они просто поблагодарили и не изъявили желание далее следить за новыми комментариями.
Изменения я внес в файл \wp-admin\includes\dashboard.php в функцию _wp_dashboard_recent_comments_row
Само название функции говорит, о том, что оно выводит ряд (row) в блок свежие комментарии (recent_comments), который находится на главной страницы админки (dashboard). Но, нашел я эту функцию, конечно, не по названию =)
Я посмотрел код элемента и увидел у блока идентификатор id=”the-comment-list”. Вот по нему и нашел место где выводится этот блок, а потом последовательно вышел на нужную мне функцию.
В функции _wp_dashboard_recent_comments_row нашел место где хотел бы вставить свою отметку и добавил фрагмент кода, который определяет подписан человек на извещения о новых комментариях к статье или нет. Добавленные строки кода выделены:
1 2 3 4 5 6 7 8 9 10 11 |
<h4 class="comment-meta"> <?php printf( /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */__( 'From %1$s on %2$s%3$s' ), '<cite class="comment-author">' . get_comment_author_link() . '</cite>', $comment_post_link.' '.$comment_link, ' <span class="approve">' . __( '[Pending]' ) . '</span>'); ?> </h4> <?php if (function_exists('comment_subscription_status')): ?> <?php if (comment_subscription_status()): ?> <span style="color:green"><b>Подписан:</b></span> <?php endif; ?> <?php endif; ?> |
2. В разделе “Комментарии” /wp-admin/edit-comments.php
В файл \wp-admin\includes\class-wp-comments-list-table.php, в функцию column_author
вставил в желаемом месте следующий код:
1 2 3 4 5 6 7 8 9 |
$subscribed_str = ''; if (function_exists('comment_subscription_status')) { if (comment_subscription_status()) { $subscribed_str = "<span style='color:green'><b>Подписан</b></span>"; } } echo "<strong>"; comment_author(); echo "</strong> {$subscribed_str} <br />"; |
В строку номер 8 был добавлен только вывод моей переменной {$subscribed_str}.
Обращаю ваше внимание, что для использования функции comment_subscription_status у вас должен быть установлен плагин Subscribe To Comments.
Теперь я сразу в админке вижу статус подписки комментатора. Так что, ребята, если желаете получить ответ (не обязательно от меня, но и от других читателей), то не убирайте галочку “Уведомить меня о новых комментариях по почте”. =)
Решение данного вопроса, конечно, топорное – обновления WordPress не переживет, но зато реализуется легко и быстро. В идеале, это, наверное, нужно решить как-то с помощью плагина, но у меня пока не хватает знаний на реализацию этого. Если что – сразу поделюсь. Вы меня знаете. =)
Берегите свои подписки! =)