Возвращаем код ошибки 404
Допустим мы хотим ограничить доступ к некоторой странице и, если пользователь не администратор, то вернуть ему код ошибки 404 (страница не найдена).
Скопировано
if( ! is_user_logged_in() || ! current_user_can( 'administrator' ) ) {
global $wp_query;
$wp_query->set_404();
status_header( 404 );
get_template_part( 404 );
exit();
}
Показать код
Этот код надо вставлять в один из ранних хуков, например, в template_redirect.
Пример как скрыть одну рубрику от неавторизованных пользователей:
Скопировано
add_action( 'template_redirect', function {
// ID рубрики которую нужно скрыть
$hidden_category_id = 555;
// Проверяем, что это страница рубрики и пользователь не авторизован
if( is_category( $hidden_category_id ) && ! is_user_logged_in() ) {
global $wp_query;
$wp_query->set_404();
status_header( 404 );
get_template_part( 404 );
exit();
}
});
Показать код
В этом примере надо указать верный ID рубрики, которую надо скрыть.