Как скрыть защищенные паролем посты из контура WordPress

WordPress позволяет создавать защищенные паролем посты. Недавно один из наших читателей спросил, можно ли скрыть защищенные паролем посты с сайта. По...

WordPress позволяет создавать защищенные паролем посты. Недавно один из наших читателей спросил, можно ли скрыть защищенные паролем посты с сайта. По умолчанию WordPress скрывает содержимое защищенного паролем поста, но при этом показывает заголовок поста с префиксом ‘Protected’. В этой статье мы покажем вам, как скрыть защищенные паролем посты из цикла WordPress.

Зачем скрывать защищенные паролем посты в WordPress?

По умолчанию WordPress отображает защищенный паролем пост с его заголовком и префиксом ‘protected’. Пользователям нужно будет ввести пароль, чтобы просмотреть содержимое поста.

Заголовок поста виден на главной странице, в архивах, виджете последних сообщений и т.д. Если вы хотите сохранить некоторый контент полностью приватным, то это не идеальный вариант.

Пользователи, у которых нет пароля, могут не только видеть заголовок поста, но и пытаться ввести пароль. Как мы все знаем, пароли могут быть взломаны.

Сказав это, давайте рассмотрим, как скрыть защищенные паролем посты из цикла WordPress, чтобы другие пользователи не могли их видеть.

Скрытие защищенных паролем постов в WordPress

Просто добавьте этот код в функции вашей темы.php файл или плагин для конкретного сайта.

функция wpb_password_post_filter( $where = '' ) < if (!is_single() && !is_admin()) < $where .= " AND post_password = ''"; >return $where; > add_filter( 'posts_where', 'wpb_password_post_filter' );

Этот код просто изменяет запрос, отправляемый в WordPress с помощью фильтра posts_where. Это попросит WordPress найти все посты, у которых нет пароля.

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

До и после скрытия защищенных постов в WordPress

Вы все еще можете посетить пост, обратившись к нему через прямой URL-адрес к самому посту.

Пример, приведенный выше, скрывает защищенные паролем посты от всех пользователей. Что если у вас многоавторский сайт WordPress и вы хотите, чтобы защищенные посты могли просматривать пользователи, имеющие возможность редактировать приватные посты??

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

function wpb_password_post_filter( $where = '' ) < if (!is_single() && !current_user_can('edit_private_posts') && !is_admin()) < $where .= " AND post_password = ''"; >return $where; > add_filter( 'posts_where', 'wpb_password_post_filter' );

В этом примере мы проверяем, не может ли пользователь редактировать защищенные паролем посты, а затем показываем только те посты, которые не имеют пароля. Таким образом, все пользователи с ролями администратора и редактора будут видеть защищенные паролем посты на передней панели вашего сайта.

Надеемся, что эта статья помогла вам скрыть защищенные паролем посты из цикла WordPress на вашем сайте. Вы также можете посмотреть наше руководство о том, как изменить префикс приватных и защищенных постов в WordPress.

Если вам понравилась эта статья, то подписывайтесь на наш канал YouTube для просмотра видеоуроков по WordPress. Вы также можете найти нас в Twitter и Google+.

Источник: www.wpbeginner.com

Оцените статью
Добавить комментарий