Застрял с WordPress Multisite Пользовательская страница регистрации без изменения .htaccess

Да, застрял в создании пользовательской страницы регистрации для WordPress Multisite .

Это хорошо пересмотренный вопрос, и многие из нас ищут ответ. Может быть, у кого-то есть, но все же я не могу найти солидного, целостного для этой проблемы. Я пытаюсь найти способ non .htaccess – PHP или WordPress.

Шаг 1:

Я изучил наиболее очевидную статью, найденную в этом квесте:

  • Использование пользовательской страницы wp-регистрации с помощью WordPress MU – Chris Wiegman

Хорошо, теперь я скопировал весь код /wp-signup.php в файл в моей теме с именем signup.php , сделаю его шаблоном страницы и вызвал страницу с URL http://example.com/signup .

Я внес изменения в нужные места. Как вместо get_header( 'wp-signup' ); Я использовал свой собственный из моей темы get_header('null'); , Этот ( header-null.php ) является довольно голой в дизайне и архитектуре из файла header.php по умолчанию моей темы.

Увы! В любом месте WordPress отсутствует header-wp-signup.php

Аналогичным образом я заменил get_footer( 'wp-signup' ); с:

  ?> <!-- /ending of php tag --> </div> <!-- /.container .site-area .not-logged-in-page --> <?php wp_footer(); ?> </body> </html> 

Шаг 2:

@toscho помог мне решить две проблемы с отзывом уже загруженных файлов. Таким образом, вместо того, чтобы показывать абсолютные пути, я просто прокомментировал строки:

 //require( dirname(__FILE__) . '/wp-load.php' ); 

а также

 //require( dirname( __FILE__ ) . '/wp-blog-header.php' ); 

Теперь у меня хороший рабочий файл для новой измененной страницы регистрации. Мне нужно /wp-signup.php трафик от /wp-signup.php , не используя .htaccess .

Шаг 3:

Я нашел эту ветку поддержки WordPress.org очень полезной:

  • возможна индивидуальная регистрация MU? – Дэвид Садер

Теперь я сделал «mu-plugin», создав файл в: wp-content/mu-plugins/sign-up-location.php . Там я использовал две функции:

 /** * Changing the Registration page URL. * * @return string The URL of the new page. * -------------------------------------------------------------------------- */ function project_signup_page() { $page = network_site_url() .'signup/'; return $page; } add_filter( 'wp_signup_location', 'project_signup_page' ); /** * Redirect from default signup page to custom page. * * @return void * -------------------------------------------------------------------------- */ function project_redirect_from_default_signup() { if( strpos($_SERVER['REQUEST_URI'], 'wp-signup.php')) { wp_redirect(network_site_url() .'signup/'); exit(); } } add_action( 'plugins_loaded', 'project_redirect_from_default_signup' ); 

Первый из них меняет URL-адрес регистрации на мой пользовательский путь. И второй мой желаемый, управляя трафиком из /wp-signup.php в /signup без .htaccess .

Примечание. Вместо создания плагина MU вы можете получить такое же влияние, используя обычный плагин.

Шаг 4 (этапы):

Согласно предложению @ toscho я заменил элемент шаблона страницы конечной точкой Rewrite Endpoint :

 <?php /** * Rewrite endpoint : /register. * * @return void * -------------------------------------------------------------------------- */ function project_registration_endpoint() { add_rewrite_endpoint( 'register', EP_ROOT ); if( get_option("EDIT_REWRITE_RULE") != 1 ) { flush_rewrite_rules(); update_option( "EDIT_REWRITE_RULE", 1 ); } } add_action( 'init', 'project_registration_endpoint' ); /** * Custom Template for Registration. * * @param string $template Template to be loaded. * @return string Our custom template to show up. * -------------------------------------------------------------------------- */ function project_custom_templates( $template ) { if( ! is_admin() ) { if( get_query_var('register') || strpos($_SERVER['REQUEST_URI'], 'wp-signup.php') ) { $template = get_template_directory() .'/signup.php'; } } return $template; } add_filter( 'template_include', 'project_custom_templates' ); /** * Return a value for '/register' * Make sure that 'get_query_var( 'register' )' will not return just an empty string if it is set. * * @link http://wordpress.stackexchange.com/a/51450/22728 * @link https://www.pmg.com/blog/a-mostly-complete-guide-to-the-wordpress-rewrite-api/ * * @param array $vars Query variables. * @return array Modified query variables. * -------------------------------------------------------------------------- */ function project_set_epex_var( $vars ) { isset( $vars['register'] ) and $vars['register'] = true; return $vars; } add_filter( 'request', 'project_set_epex_var' ); 

Изменено: И в этот момент я изменил slug /signup на /register чтобы разрешить любой возможный конфликт, который может произойти. Я изменил строки mu-plugin соответственно. И сделайте шаблон страницы удаленным.

Все работает нормально , и я получил свою желаемую вещь 🙂 … кроме …

сообщения об успехах или ошибках …
все сообщения об успехе или ошибке исчезли с помощью wp_redirect() . : о

Я проверил файл, да, show_user_form() существует с параметром $errors , все в порядке, кроме сообщений об ошибках или успехах.

Как я могу отображать сообщения об успешном и / или об ошибках на моей странице регистрации на странице?

На бенгальском

Я подробно объяснил все это со всеми источниками на бенгальском языке, в своем блоге – я боюсь, автоматический перевод на бенгальский язык пока не так хорош.

Solutions Collecting From Web of "Застрял с WordPress Multisite Пользовательская страница регистрации без изменения .htaccess"