1

在 WordPress 中,我知道 tld.com/author/username 存在于作者,但我正在寻找非作者的公共用户个人资料页面。我想为我网站上的成员设置一个简单的“收藏夹列表”。用户将创建一个帐户,并添加他们喜欢的帖子。他们不需要访问 wp-admin。

我正在寻找像 tld.com/user/username 这样简单的东西——而不是 /user/?uid=1。漂亮又“漂亮”。就像 WordPress 如何处理 /author/admin 或 /author/username 一样。

我还想保留 /authors 以便它也可以访问。

我尝试了很多插件,比如 WordPress-Users,但它不是一个“漂亮”的 URL,还尝试了一些复杂的插件,比如 Members、profile-builder、wp-user-frontend。

4

2 回答 2

3

我从这里找到的@bybloggers 答案中找到了答案。https://wordpress.stackexchange.com/a/58793/12920

我稍微修改了他的代码以适应我的需要,但这是对我有用的代码,正是我正在寻找的:

// Create the query var so that WP catches the custom /member/username url
function userpage_rewrite_add_var( $vars ) {
    $vars[] = 'member';
    return $vars;
}
add_filter( 'query_vars', 'userpage_rewrite_add_var' );

// Create the rewrites
function userpage_rewrite_rule() {
    add_rewrite_tag( '%member%', '([^&]+)' );
    add_rewrite_rule(
        '^member/([^/]*)/?',
        'index.php?member=$matches[1]',
        'top'
    );
}
add_action('init','userpage_rewrite_rule');

// Catch the URL and redirect it to a template file
function userpage_rewrite_catch() {
    global $wp_query;

    if ( array_key_exists( 'member', $wp_query->query_vars ) ) {
        include (TEMPLATEPATH . '/user-profile.php');
        exit;
    }
}
add_action( 'template_redirect', 'userpage_rewrite_catch' );

在我的functions.php文件中之后,我不得不重新保存我的永久链接。

有时重新保存永久链接并不能 100% 完成工作,浏览 www.mysite.com/member/username 会出现 404,因此我不得不手动刷新规则,将其放入functions.php我的网站并加载我的网站一次。然后删除它,这样我就不会在每次站点加载时都运行它,因为这是不必要的开销。

// Code needed to finish the member page setup
function memberpage_rewrite() {
     global $wp_rewrite;
     $wp_rewrite->flush_rules();
}
add_action('init','author_rewrite');
于 2013-03-18T22:44:41.720 回答
0

我不知道你是否会找到这个,至少不是免费的。你检查过WPMU吗?几个月前我开始编写会员插件,但从未完成,现在正在 Symfony 中完成。大多数 WordPress 会员插件要么太复杂而无法使用,要么无法提供您需要的功能。

你应该明确你需要什么,让当地的开发商为你建造它,如果你做得好,你甚至可以卖掉它。

于 2013-03-15T00:52:46.297 回答