Intereting Posts
Не знаю, как я буду делать это в WP .., связанных с пользовательскими тегами Исключение настраиваемых типов сообщений Сохранять права пользователя на доступ к содержимому в ответе JSON Добавьте выбранный вариант коротких кодов, таких как выпадающее меню в тиниме Защита страницы входа в WordPress Как грубый форекс знает, что пароль взломан для целевого имени пользователя? Ломающаяся сетка бутстрапа при количестве сообщений с налоговыми условиями Удаление ненужного текста из меню администратора без CSS Добавление json в качестве параметров для короткого кода WordPress проверяет, зарегистрирован ли пользователь на странице без WordPress wp_print_scripts выполняется дважды Реплицировать функциональные возможности изображения Почему WordPress поддерживает 1024px-версию моего изображения, а не оригинал на экране 1920×1080? Загрузка текстового домена плагина перед регистрацией типа сообщения Как изменить тип изображения для определенного размера?

Как скрыть все комментарии от зарегистрированных пользователей

Есть ли способ удалить опубликованные комментарии, чтобы они были скрыты для зарегистрированных пользователей?

Solutions Collecting From Web of "Как скрыть все комментарии от зарегистрированных пользователей"

Я бы порекомендовал искать все вхождения comments_template в вашей теме и обертывать их в is_user_logged_in condiational.

Пример:

 <?php if (is_user_logged_in()) { comments_template(); } 

В качестве альтернативы вы можете открыть comments.php вашей темы comments.php (или эквивалент, обычно это comments.php ) и добавить что-то вроде этого на самом верху:

 <?php if (!is_user_logged_in()) { return; } 

PHP позволит вам вернуться из файлов раньше, так что вы можете «заручиться» из include, как указано выше. Если вам нужно удалить комментарии по всем типам сообщений для не зарегистрированных пользователей, второй вариант, скорее всего, лучший. Если вам это нужно условно на некоторых типах сообщений, первое – лучшее.

Лучшим решением, однако, является использование ваших собственных фильтров. Вместо прямого вызова apply_filters вызовите apply_filters с уникальным именем и попробуйте по умолчанию попробовать.

 <?php // somewhere before all the other stuff in comments.php if (!apply_filters('wpse96406_show_comments', true)) { return; } 

Затем в functions.php закрепите свой собственный фильтр и измените его поведение.

 <?php add_filter('wpse96406_show_comments', 'is_user_logged_in'); 

Зачем это делать? Гораздо более гибкий.

Хотите оставить комментарий к определенным сообщениям? Первые два варианта выше не позволяют сделать это (без какого-либо рефакторинга). Использование собственного фильтра делает вещи гораздо более расширяемыми для вашего будущего пользователя или для конечных пользователей, если вы выпускаете тему.

Основываясь на более старой статье , я бы это сделал:

 <?php # -*- coding: utf-8 -*- /* Plugin Name: Show comments after login */ if ( ! function_exists( 'wpse_96406_comments_after_login' ) ) { add_filter( 'comments_template', 'wpse_96406_comments_after_login', 11 ); function wpse_96406_comments_after_login( $comments_template ) { return is_user_logged_in() ? $comments_template : __FILE__; } } 

Примечание. Это должен быть отдельный плагин; не помещайте этот код в тему.

Но вы также можете искать все вхождения comments_template() в своей теме и переносить их в условное.

Благодарю. Я решил это, написав пользовательскую функцию самостоятельно, основываясь на удалении формы комментариев из Genesis.