• 解決済 mamap

    (@mamap)


    bbpressの投稿者名のリンクを押すなどすると、ユーザーページが表示されますが、
    このURLにユーザー名が表示されてしまいます、
    セキュリティやプライバシー保護上、あまりよろしくないと思いますので、
    何か他の値(index的なものや表示名?)に変更したいのですが、可能でしょうか。

    http://bbpress.org/forums/topic/user-profile-url-uses-the-username-can-that-be-changed/
    のトピックを見て、示されているソースコード

    add_action( 'init', 'nicenames_to_display_name' );
    function nicenames_to_display_name() {
        foreach ( get_users() as $user ) {
    		if ( $user->data->user_status == 0 && $user->data->user_nicename != $user->data->display_name ) {
    			$user_ids[] = $user->ID;
    		}
    	}
    	foreach( $user_ids as $uid ) {
    		$info = get_userdata( $uid );
    		$display_name = $info->data->display_name;
    		if ($display_name) {
    			$args = array(
    				'ID'            => $uid,
    				'user_nicename' => strtolower(str_replace(" ", "_", $display_name))
    			);
    			wp_update_user( $args );
    		}
    	}
    }

    をfunction.phpに入れてみたところ、
    たしかにURLは「ドメイン/forums/users/ユーザの表示名/」になったのですが、
    ユーザーページは表示されず、404となってしまいました。
    functuon.phpの上記コードを削除しても、元には戻らなくなってしまいました。

    bbpress 2.5.4

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック投稿者 mamap

    (@mamap)

    自己解決です。

    >「ドメイン/forums/users/ユーザの表示名/」
    「ドメイン/forums/users/ユーザID/」に変更しました。

    add_action( 'init', 'nicenames_to_user_id' );
    function nicenames_to_user_id() {
        foreach ( get_users() as $user ) {
    //		if ( $user->data->user_status == 0 && $user->data->user_nicename != $user->data->display_name ) {
    		if ( $user->data->user_status == 0 && $user->data->user_nicename != $user->ID ) {
    			$user_ids[] = $user->ID;
    		}
    	}
    
    	if( !empty($user_ids) ) {
    		foreach( $user_ids as $uid ) {
    			$info = get_userdata( $uid );
    			$display_name = $info->data->display_name;
    			if ($display_name) {
    				$args = array(
    					'ID'            => $uid,
    					'user_nicename' => $uid
    				);
    				wp_update_user( $args );
    			}
    		}
    	}
    }

    >上記コードを削除しても、元には戻らなくなってしまいました。
    wp_update_user( $args );してるので当然ですね・・・。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「bbpressでユーザーページのURLにユーザー名を表示したくない」には新たに返信することはできません。