我正在尝试更改wp login的登录url。php只需“登录”。我一直在寻找另一个插件源代码来找到实现它的方法。
到目前为止,我已经掌握了一些适用的部分:
register_activation_hook( __FILE__, \'my_plugin_activate\' );
register_deactivation_hook( __FILE__, \'my_plugin_deactivate\' );
add_action( \'init\', \'my_plugin_rewrite\' );
add_action( \'login_init\', \'my_plugin_login_init\' );
add_action( \'template_redirect\', \'my_plugin_display\' );
function my_plugin_activate() {
add_rewrite_tag( \'%login%\', \'([^/]+)\');
add_permastruct( \'login\', \'/%login%\' );
flush_rewrite_rules();
}
function my_plugin_login_init() {
if ( \'/wp-login.php\' == $_SERVER[\'PHP_SELF\'] ) {
header( \'HTTP/1.0 404 Not Found\' );
global $wp_query;
$wp_query->set_404();
require TEMPLATEPATH . \'/404.php\';
exit;
}
}
function my_plugin_display() {
global $wp_query;
switch( $wp_query->query_vars[\'pagename\'] ) {
case \'login\' :
include( ABSPATH . \'/wp-login.php\' );
exit;
break;
}
}
我遇到的问题是“my\\u plugin\\u display”函数。
$wp_query->query_vars[\'pagename\']
碰巧是空的。如何测试url是否位于/login
? 这是要用的钩子吗?
SO网友:Sarathi
您可以尝试使用“query\\u vars”筛选器添加查询变量,如下所示:
add_filter(\'query_vars\', \'my_plugin_query_vars\');
function my_plugin_query_vars($vars) {
$vars[] = \'login\';
return $vars;
}
这可能会填充$wp\\u query->query\\u var,如果我没有在我的一个项目中成功使用get\\u query\\u var函数,请尝试以下操作:
function my_plugin_display() {
if(get_query_var(\'login\')) {
include( ABSPATH . \'/wp-login.php\' );
exit;
}
}