Частный форум bbPress Перенаправить на Логин

Редактировать: Вот как это сделать, если вы используете префикс слаг для своих форумов (смените «форумы», если используете другой слаг). Этот код также перенаправляет пользователя для входа и возврата на страницу, на которой он находился для личных страниц / сообщений.

add_action('template_redirect', 'private_content_redirect_to_login', 9);
function private_content_redirect_to_login() {
global $wp_query,$wpdb;
if (is_404()) {
$private = $wpdb->get_row($wp_query->request);
$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
$path = dirname($_SERVER['REQUEST_URI']);
$forums = "forums";
$location = wp_login_url($_SERVER["REQUEST_URI"]);
if( 'private' == $private->post_status  ) {
wp_safe_redirect($location);
exit;
}
}
if(strpos( $path, $forums ) !== false){
wp_safe_redirect($location);
exit;
}
}

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

add_action('template_redirect', 'private_content_redirect_to_login', 9);
function private_content_redirect_to_login() {
global $wp_query,$wpdb;
if (is_404()) {
$private = $wpdb->get_row($wp_query->request);
$location = wp_login_url($_SERVER["REQUEST_URI"]);
if( 'private' == $private->bbp_private_post_status  ) {
wp_safe_redirect($location);
exit;
}
}
}

Спасибо!

0

Решение

Вот код, который я использую:
// Redirect private bbPress forum to specific page.
add_action('template_redirect', 'private_content_redirect_to_login', 9);
function private_content_redirect_to_login() {
global $wp_query,$wpdb;
if (is_404() and !is_user_logged_in()) {
$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
$path = dirname($_SERVER['REQUEST_URI']);
$forums = "forum";
$location = "redirect to the URL of your choice";
}
if(strpos( $path, $forums ) !== false){
wp_safe_redirect($location);
exit;
}
}

Btw
Вот учебник:
https://www.easywebdesigntutorials.com/hide-buddypress-pages-and-bbpress-forums-from-not-logged-in-users/

0

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector