0

コメントを投稿すると、ユーザーのCMS領域に設定されている編集不可能なニックネームが常に出力されます。カスタムニックネーム(ドロップダウンリストで選択できるニックネーム)を印刷したいのですが。

実際に使っcomment_author_link();てみましたが、足りないようです。どうすれば使用できますか?

4

1 に答える 1

1

WordPressは次のコードを使用して、現在のコメントの作成者を取得します。

/**
 * Retrieve the author of the current comment.
 *
 * If the comment has an empty comment_author field, then 'Anonymous' person is
 * assumed.
 *
 * @since 1.5.0
 * @uses apply_filters() Calls 'get_comment_author' hook on the comment author
 *
 * @param int $comment_ID The ID of the comment for which to retrieve the author. Optional.
 * @return string The comment author
 */
function get_comment_author( $comment_ID = 0 ) {
    $comment = get_comment( $comment_ID );
    if ( empty($comment->comment_author) ) {
        if (!empty($comment->user_id)){
            $user=get_userdata($comment->user_id);
            $author=$user->user_login;
        } else {
            $author = __('Anonymous');
        }
    } else {
        $author = $comment->comment_author;
    }
    return apply_filters('get_comment_author', $author);
}

/**
 * Displays the author of the current comment.
 *
 * @since 0.71
 * @uses apply_filters() Calls 'comment_author' on comment author before displaying
 *
 * @param int $comment_ID The ID of the comment for which to print the author. Optional.
 */
function comment_author( $comment_ID = 0 ) {
    $author = apply_filters('comment_author', get_comment_author( $comment_ID ) );
    echo $author;
}

関数によって与えられた戻り文字列を操作していることがわかりますget_comment_author
あなたができることはあなたの中に次のようなものを追加することですfunctions.php

add_filter('get_comment_author', 'my_comment_author', 10, 1);

function my_comment_author( $author = '' ) {
    // Get the comment ID from WP_Query

    $comment = get_comment( $comment_ID );

    if ( empty($comment->comment_author) ) {
        if (!empty($comment->user_id)){
            $user=get_userdata($comment->user_id);
            $author=$user->display_name; // this is the actual line you want to change
        } else {
            $author = __('Anonymous');
        }
    } else {
        $author = $comment->comment_author;
    }

    return $author;
});

それが役に立てば幸い!

于 2012-12-12T13:51:43.887 に答える