0

ユーザー プロファイルのリンクを変更しようとしていますが、初心者すぎるようです。リンクの現在の構造はdomain.com/profile/usernameです。私がしたいのは次のようなものです: domain.com/username/cityここで、都市は wp_postmeta テーブルから取得されます

この関数を使用して何かを試しました:

add_action('init', 'wpse82004_init');

function wpse82004_init()

{

    global $wp_rewrite;

    $city = get_user_meta( get_current_user_id(), 'city', TRUE ); 

    $wp_rewrite->author_base = $city;

    $wp_rewrite->author_structure = '/%author%' . '/' . $wp_rewrite->author_base;

}

問題は、クリックしたすべてのプロファイルで現在ログインしているユーザーの都市を返すことです。どんな助けでも大歓迎です。ありがとう

4

1 に答える 1

1

テストされていないコード

add_action('init', 'wpse82004_init');

function wpse82004_init()

{

    global $wp_rewrite;

    //parse username from url
    $url = $_SERVER["REQUEST_URI"];
    $username = preg_replace('/^.*profile\/(.*)$/i', '$1', $url);

    //get user by username
    $user = get_user_by('slug', $username);

    //rewrite the city value of anticipated user other than current user
    $city = get_user_meta( $user->ID, 'city', TRUE ); 

    $wp_rewrite->author_base = $city;

    $wp_rewrite->author_structure = '/%author%' . '/' . $wp_rewrite->author_base;

}
于 2013-11-10T01:51:47.637 に答える