Intereting Posts
Какова наилучшая практика для отображения моего содержимого плагина в темах? Могу ли я объединить 2 новых WP_Query ($ variable)? Синхронизация контента в Multisite. Возможное? Woocommerce – просмотр изображений на петлях Как я могу полностью кэшировать полный HTML-код на облачном Как заставить элемент меню верхнего уровня не иметь ссылку, но есть подменю, которые связаны? Сохранять срок заказа на должность в неиерархической таксономии Нижний колонтитул исчезает при использовании функции__состояния () Существует ли какое-либо управление зависимостью темы? Пользовательская Loop Loop WordPress не обнаруживает все изображения в папке uploads? Мой плагин не устанавливается правильно, если предыдущая версия все еще установлена таксономический запрос для вывода пули вместо идентификаторов Как использовать один репозиторий git (github) для управления версиями для нескольких тем Представить себе не получится

Отключение комментариев для Post Author

Я пытаюсь отключить уведомления комментариев для авторов сообщений (или кого-либо еще, кроме администратора сайта) для сайта клиента. Я попытался создать плагин, который использует подключаемую функцию wp_notify_postauthor , но, похоже, это не влияет.

Вот код плагина:

 <?php /** * * * @package Disable_plugin_notifications * @author Me * @link <hidden> * * @wordpress-plugin * Plugin Name: Disable Comment Notifications * Plugin URI: <hidden> * Description: <hidden> * Version: 1.0.0 * Author: <hidden> * Author URI: <hidden> */ // Disabling comment notifications for post authors if ( !function_exists( 'wp_notify_postauthor' ) ) { function wp_notify_postauthor() { return; } } 

Я также пробовал это без «возврата» в функции.

Я просмотрел источник функции wp_notify_postauthor() и заметил фильтр comment_notification_recipients .

Интересно, можете ли вы упростить свой плагин к следующему фрагменту кода:

 <?php /** * Plugin Name: Disable comment/trackback/pingback notifications emails * Plugin URI: http://wordpress.stackexchange.com/a/150141/26350 */ add_filter( 'comment_notification_recipients', '__return_empty_array', PHP_INT_MAX ); add_filter( 'comment_moderation_recipients', '__return_empty_array', PHP_INT_MAX ); 

где мы используем пустой массив $emails чтобы предотвратить отправку уведомлений по электронной почте.

Первый фильтр должен остановить wp_notify_postauthor() а второй – остановить wp_notify_moderator() .

Если вы хотите, чтобы только пользователь admin получал уведомления по электронной почте, вы можете использовать эту версию:

 <?php /** * Plugin Name: Disable comment/trackback/pingback notifications emails except for admins. * Plugin URI: http://wordpress.stackexchange.com/a/150141/26350 */ add_filter( 'comment_notification_recipients', '__return_empty_array', PHP_INT_MAX ); add_filter( 'comment_moderation_recipients', function( $emails ) { // only send notification to the admin: return array( get_option( 'admin_email' ) ); } , PHP_INT_MAX ); 

Мы также могли бы переопределить эти два подключаемых функции, но я не использую их здесь.