1

WordPress では、著者用に tld.com/author/username が存在することは承知していますが、非著者用の公開ユーザー プロファイル ページを探しています。私のサイトのメンバーのために、単純な「お気に入りのリスト」をセットアップしたいと考えています。ユーザーはアカウントを作成し、好きな投稿を追加します。wp-admin へのアクセスは必要ありません。

/user/?uid=1 ではなく、tld.com/user/username のような単純なものを探しています。かっこよくて「かわいい」。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てサイトを1回ロードすることにより、手動でルールをフラッシュする必要がありました。次に、それを削除して、サイトが読み込まれるたびに実行しないようにします。これは、不要なオーバーヘッドであるためです。

// 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 に答える