Intereting Posts
Использование paginate_links () для создания штампов «01, 02, 03, 04» wp_enqueue_scripts, wp_register_scripts, wp_print_scripts: я запутался Проблема с permalink в WordPress Отображение определенного количества сообщений на странице архива таксономии Лучшее изображение не отображается на странице Catch 404 после изменения структуры постоянной ссылки из /% postname% / to /% category% /% postname% / Несколько доменных имен под одной установкой WordPress Параметр querystring теряется в правиле перезаписи Я не могу получить tax_query в get_posts () для работы с пользовательской таксономией Фильтрация исходящих пользовательских данных поля $ wpdb возвращает старые столбцы? Вы можете его сбросить? Сценарий, чтобы получить список всех отрисованных изображений? Как предоставить источник изображения в редакторе страниц WordPress? Может ли кто-нибудь объяснить функцию третьего параметра «add_rewrite_tag», Удалить Custom Post Type Slug и добавить пользовательскую таксономию в структуру Permalink?

Требовать логин для определенных шаблонов

У меня есть специальные шаблоны для запроса логина.

Я пробовал эти три версии в файле 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' );