Change user URL

时间:2017-01-20 作者:Raashid A.

当用户创建的URL显示为www.sitename.com/user/username

我想换成
www.sitename.com/username (从URL中删除用户)

我该怎么做

2 个回复
SO网友:sdx11

转到“设置”>“永久链接”,并按如下方式进行设置

自定义结构和放置。在类别库中

enter image description here

SO网友:Pedro Coitinho

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

希望有帮助!

相关推荐

获取所有wp_USERS按元密钥排序

我正在尝试让用户列表按元键排序。我的意思是我已经设置了元键user_last_login. 某些用户没有此元密钥。一些用户拥有它。我想在一个查询中同时获得两个用户,但如果存在元键,则这些用户将排在第一位,其余用户应排在最后。这是我的问题$meta_query_args = array( \'relation\' => \'OR\', // Optional, defaults to \"AND\" array(