是的,坚持为创建自定义注册页WordPress Multisite.
这是一个经过精心修改的问题,我们中的许多人都在寻找答案。也许有人得到了一个,但我仍然找不到任何可靠的,全面的问题。我想找一个.htaccess 方式-PHP或WordPress方式。
第1步:
我研究了这项任务中最明显的一篇文章:
- Using a Custom wp-signup Page With WordPress MU - <好的,现在我已经复制了
/wp-signup.php 到我的主题中名为signup.php, 将其设置为页面模板,并使用URL调用该页面http://example.com/signup.我更改了所需的位置。喜欢而不是get_header( \'wp-signup\' ); 我使用了我的主题中的自定义get_header(\'null\');. 那个(header-null.php) 从默认的设计和架构来看,这是非常简单的header.php 我的主题文件。
唉!没有header-wp-signup.php 在WordPress的任何地方
同样,我替换了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 到这里,不用.htaccess.第三步:
我找到了这个WordPress。组织支持线程非常有用:- individual MU Registration Page possible? - <大卫·萨德尔现在我做了一个;mu插件;在以下位置创建文件:
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.Note: 现在使用常规插件可以获得相同的效果,而不是创建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\' );
Modified: 在那一点上,我换了鼻涕虫/signup 到/register 解决任何可能发生的冲突。我相应地更改了mu插件的字符串。并使页面模板失效。Everything is working fine, 我得到了我想要的东西:)。。。除了
成功或错误消息
all the success or error messages are gone带wp_redirect(). :o
我检查了我的文件,是的show_user_form() 是否有$errors 参数,除错误或成功消息外,一切正常。
如何在自定义页面注册页面中显示成功和/或错误消息?
我用孟加拉语详细地解释了整个事情,并用孟加拉语的所有来源blog post - 恐怕,孟加拉语的自动翻译还没有那么好。