У меня есть специальные шаблоны для запроса логина.
Я пробовал эти три версии в файле functions.php.
#
1 Это не работает. Мне пришлось делать add_action( 'wp_head', 'template_login_permit' );
Потому что я ставлю каталог шаблонов? если я поставил 'wp_head', auth_redirect (); не работает.
function template_login_permit() { if ( is_page_template('templates/tpl-aa.php') || is_page_template('templates/tpl-bb.php') || is_page_template('templates/tpl-cc.php') || is_page_template('templates/tpl-dd.php') || is_page_template('templates/tpl-ee.php') || is_page('shop') ) { //echo "ok"; //auth_redirect(); if ( !is_user_logged_in() ) { //wp_redirect('/login'); auth_redirect(); echo "ok"; } } } add_action( 'init', 'template_login_permit' );
#
2 add_action( 'wp', 'login_redirect' );
wp для всех шаблонов, правильно? то как я могу настроить только для определенных шаблонов?
// Redirect users who arent logged in... function login_redirect() { // Current Page global $pagenow; // Check to see if user in not logged in and not on the login page if(!is_user_logged_in() && $pagenow != 'wp-login.php') // If user is, Redirect to Login form. //auth_redirect(); echo ""; } // add the block of code above to the WordPress template add_action( 'wp', 'login_redirect' );
#
3 Это просто для проверки пользовательской страницы входа, которую я имею.
add_action('init','possibly_redirect'); function possibly_redirect(){ global $pagenow; if( 'wp-login.php' == $pagenow ) { wp_redirect('/login'); exit(); } }
Есть ли способ запросить «логин» (у меня есть пользовательская страница входа) для определенных шаблонов?
Ваша первая функция только на неправильном крючке. init
слишком рано, чтобы узнать, какой шаблон / страница страницы вы используете, потому что запрос еще не настроен. Лучшим крючком для перенаправления обычно является template_direct
. Для меня работает следующее:
function template_login_permit() { if ( is_page_template('templates/tpl-aa.php') || is_page_template('templates/tpl-bb.php') || is_page_template('templates/tpl-cc.php') || is_page_template('templates/tpl-dd.php') || is_page_template('templates/tpl-ee.php') || is_page('shop') ) { if ( !is_user_logged_in() ) { auth_redirect(); } } } add_action( 'template_redirect', 'template_login_permit' );