WordPress: перенаправить на страницу входа для определенных постов, если пользователь не авторизован

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

Я добавил это в functions.php, но ничего не произошло при посещении поста с этой категорией:

add_action('intra_post', 'intranet_post_privacy');
function intranet_post_privacy() {
if ( !is_user_logged_in() && is_category( 'intranet' )) {
header("Location: http://utt.se/user-login.php");
}
}

0

Решение

Добавьте ниже код к теме functions.php
изменить $category_slug переменная в зависимости от вашей категории.

add_action( 'template_redirect', 'redirect_to_login_for_specific_category' );
function redirect_to_login_for_specific_category() {
$category_slug = 'intranet';
global $post;
if ( ! is_user_logged_in() && in_category( $category_slug, $post ) ) {
$new_url = site_url() . "/wp-login.php";
wp_redirect( $new_url, 301 );
exit;
}
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]