您可以使用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
将所有页面路由到您的域/页面/页面名。
希望有帮助!