Модерация комментариев к пользовательским типам сообщений
Я знаю, что могу потребовать, чтобы все комментарии на моем сайте были модерированы, но есть ли способ принудительной модерации для определенного пользовательского типа публикации (т.Е. Моего "вида" CPT), позволяя при этом мгновенные комментарии на остальной части сайта?
Заранее благодарю,
2 answers
Да, это возможно. Модерация комментариев - это опция, и она извлекается, как и любая другая опция:
get_option('comment_moderation');
Функция get_option применяет фильтр перед возвращением значения...
return apply_filters( 'option_' . $option, maybe_unserialize( $value ) );
Итак, что вам нужно сделать, это add_filter('option_comment_moderation', 'check_moderable_post_types')
и в вашей функции check_moderable_post_types
проверьте, является ли тип записи текущего сообщения видом. Если это так, верните 1, а если нет, верните значение $, которое передается функции!
Редактировать: Это должно сделать трюк:
add_filter('option_comment_moderation', 'check_moderable_post_types');
function check_moderable_post_types($value) {
if (get_post_type() == 'species') return 1;
return $value;
}
Предыдущий ответ не работает для меня в WordPress 4.9.8. Я понял это с помощью pre_comment_approved
крючка.
Пример:
add_filter('pre_comment_approved', 'misha_moderable_post_types', 10, 2);
function misha_moderable_post_types( $approved, $commendata ) {
if ( get_post_type( $commendata['comment_post_ID'] ) === 'custom post type name' ){
return true;
}
return $approved;
}