2016-02-18 8 views
0

Я знаю, что некоторые ответы на мой вопрос, но я не знаю, существует ли моя проблема у других людей, которые обратились за помощью.wordpress redirect to login form

У меня есть эта функция, которая помогает мне перенаправить пользователей для входа перед доступом любого contetnt моего сайта:

function restrict_access_if_logged_out(){ 
    if (!is_user_logged_in() && !is_home()){ 
     wp_safe_redirect(wp_login_url(get_permalink())); 
    } 
} 
add_action('wp', 'restrict_access_if_logged_out', 3); 

Эта функция работает нормально, но у меня есть проблема. Когда кто-то перемещается на мою домашнюю страницу и нажимает на ссылку, которая идет здесь: «example.com/about», тогда моя функция отлично работает. Когда кто-то пытается перейти к «example.com/about», введя его в URL-адрес браузера, моя функция не работает, и он может получить доступ к моему сайту. Что я делаю неправильно? Я пишу свою функцию в моем файле functions.php шаблонов.

Я только что создал шаблон страницы под названием restriction_page.php:

<?php 
/* 
Template Name: My Restricted Page 
*/ 
?> 

<h1>Hello There</h1> 

<?php 
function restrict_access_if_logged_out(){ 
    if (!is_user_logged_in() && !is_home()){ 
     wp_safe_redirect(wp_login_url()); 
    } 
} 
add_action('wp', 'restrict_access_if_logged_out', 3); 
?> 

я установить этот шаблон в качестве шаблона fefault в моей о странице. Нет решения.

Любые идеи?

ответ

0

Метод: 1 вы можете добавьте его в начало страницы.php

Если вы хотите добавить еще несколько страниц, jus т добавить оператор || (или) следующим образом:

<?php 
$pageTitle == get_the_title(); 
    if($pageTitle == 'Submit' || $pageTitle =='NewPage') { 
     if (!is_user_logged_in()) { 
     redirect code 
    } else { 
     page code 
    } 
    } else { 
    page code 
} 
?> 

Метод: 2

Запись этого в плагин:

add_action('template_redirect', 'auth_redirect'); 

Это заставит войти в систему все посетители, если они Арен Уже.

В некоторых случаях это требует входа в систему каждый раз. Это может сработать лучше:

add_action('template_redirect', function() { 
    is_user_logged_in() || auth_redirect(); 
}); 
0

Вы должны создать страницу шаблона для страницы с ограниченным доступом, так как мы создаем шаблоны страниц ширины страницы, шаблон страницы правой боковой панели, шаблон левой боковой панели и т. Д. И в шаблоне с ограниченными шаблонами вызывается ваша функция. Когда вы собираетесь создавать страницы, выберите ограниченный шаблон из списка шаблона страницы в правой части.

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

+0

Я сделал это. Я создал шаблон страницы под названием restrictes_page.php, я вставил мою php-функцию, и я перешел на страницу и установил в качестве шаблона шаблон страницы, который я создал .. но не решение .. –

1

Вы можете использовать встроенный в auth_redirect() функции для этого:

function restrict_access_if_logged_out(){ 

    if (!is_user_logged_in()){ 
     auth_redirect(); 
    } 
} 
add_action('wp', 'restrict_access_if_logged_out', 3); 

Примечание: Это должно идти в ваших темах functions.php файл