Модерация комментариев к пользовательским типам сообщений


Я знаю, что могу потребовать, чтобы все комментарии на моем сайте были модерированы, но есть ли способ принудительной модерации для определенного пользовательского типа публикации (т.Е. Моего "вида" CPT), позволяя при этом мгновенные комментарии на остальной части сайта?

Заранее благодарю,

Author: turbonerd, 2012-01-21

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;
}
 0
Author: Matthew Boynes, 2012-01-22 01:13:14

Предыдущий ответ не работает для меня в 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;
}
 0
Author: Misha Rudrastyh, 2018-08-23 08:35:05