当用户创建的URL显示为www.sitename.com/user/username
我想换成
www.sitename.com/username (从URL中删除用户)
我该怎么做
当用户创建的URL显示为www.sitename.com/user/username
我想换成
www.sitename.com/username (从URL中删除用户)
我该怎么做
您可以使用add_rewrite_rule
, 它将url中的正则表达式与索引查询相匹配。php。
在您的功能中。php或插件:
function yourdomain_user_rewrite_rule() {
add_rewrite_rule(
\'^([^/]*)/?$\', // matches anything
\'index.php?author_name=$matches[1]\', // to ?author_name
\'top\' // run before other queries
);
// this cleans the rewrite rules and make it work
// its very slow! Remove from production!
flush_rewrite_rules();
}
add_action( \'init\', \'yourdomain_user_rewrite_rule\' );
Rembemer移除flush_rewrite_rules
来自produciton。您可以将其绑定到插件激活挂钩,或者只需转到设置>永久链接并保存(这会为您刷新规则)。BUT! 您将遇到一个问题:您丢失了查找页面的查询!
有两种方法可以解决此问题:
钩住pre_get_post
执行用户检查并修改查询,或为页面添加新规则我建议第二种,因为如果你在pre\\u get\\u post上进行检查,你会向数据库中添加额外的调用,这会使事情变得缓慢。
因此,要添加新查询,很容易:
add_rewrite_rule(
\'^page/([^/]*)/?$\',
\'index.php?pagename=$matches[1]\',
\'top\'
);
将其添加到yourdomain_user_rewrite_rule
将所有页面路由到您的域/页面/页面名。希望有帮助!
我正在尝试让用户列表按元键排序。我的意思是我已经设置了元键user_last_login. 某些用户没有此元密钥。一些用户拥有它。我想在一个查询中同时获得两个用户,但如果存在元键,则这些用户将排在第一位,其余用户应排在最后。这是我的问题$meta_query_args = array( \'relation\' => \'OR\', // Optional, defaults to \"AND\" array(