WordPress Overide 404 для частных страниц - PullRequest
2 голосов
/ 29 ноября 2011

Мне было интересно, как бы я пошел по поводу переопределения WordPress по умолчанию 404 на личных страницах, когда не вошел в систему?Заглянул в post-template.php, но ничего не мог изменить, чтобы это работало?

Ответы [ 3 ]

2 голосов
/ 14 декабря 2015

для создания собственного сообщения для личных страниц

добавьте этот код в начало вашего 404.php в вашей теме:

//Redirect if requested page is private
$page_requested = get_page_by_path($_SERVER['REQUEST_URI']);

$page_status = get_post_status( $page_requested->ID );
if( $page_status == 'private' ){
    wp_redirect( get_site_url().'/path/to/private/login' ); exit;
}
0 голосов
/ 17 июля 2018

У меня недостаточно репутации, чтобы комментировать ответ выше при помощи wordup.Но если вам просто нужно, чтобы посетитель был перенаправлен для входа в систему, измените wp_redirect на auth_redirect, он будет перенаправлен обратно на страницу, первоначально запрошенную после входа в систему ...

//Redirect if requested page is private
$page_requested = get_page_by_path($_SERVER['REQUEST_URI']);

$page_status = get_post_status( $page_requested->ID );
if( $page_status == 'private' ){
    auth_redirect(); exit;
}
0 голосов
/ 29 ноября 2011

Я не уверен на 100%, что понимаю, о чем вы спрашиваете, но похоже, что вы хотите создать пользовательскую страницу 404 и изменить ее в зависимости от того, вошел ли кто-то в систему или нет.

Для этого: создайте файл 404.php и загрузите его в каталог тем (тот же каталог тем, что и header.php, footer.php, sidebar.php и т. Д.). Затем в коде используйте эту функцию:

if( is_user_logged_in() ) {
    // Code for logged in users
}
else {
    // Code for unknown users
}

Это должно сделать это для вас.

Источники: Страница 404 создания ошибки , Функция - пользователь вошел в систему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...