Я пытаюсь связать имя автора комментария с URL сайта / профилем / именем пользователя автора - PullRequest
1 голос
/ 02 октября 2019

Я настраиваю сайт WordPress, где пользователи могут комментировать в зависимости от ролей пользователей. Я хотел бы связать имя автора комментария с его личной страницей профиля (site url/profile/username).

. У меня почти 0 знаний о PHP, и я немного знаю CSS. Я пробовал несколько разных фрагментов кода в моей дочерней теме function.php, но ни один из них не работает должным образом. Следующий фрагмент, например, связывает только имя автора комментария с идентификатором сайта url/profile/user, но мне бы хотелось, чтобы это был сайт url/profile/username

function force_comment_author_url($comment)
{
    // does the comment have a valid author URL?
    $no_url = !$comment->comment_author_url || $comment->comment_author_url == 'http://';

    if ($comment->user_id && $no_url) {
        // comment was written by a registered user but with no author URL
        $comment->comment_author_url = 'http://www.founderslair.com/profile/' . $comment->user_id;
    }
    return $comment;
}
add_filter('get_comment', 'force_comment_author_url');

Я ожидаю получить имя пользователя, а не идентификатор пользователя,Я попробовал некоторые изменения во фрагменте, но, похоже, ничего не работает. Я хотел бы знать, что я делаю неправильно и что я могу сделать, чтобы улучшить это. Заранее спасибо.

1 Ответ

0 голосов
/ 02 октября 2019

Вы можете использовать встроенную функцию get_userdata , чтобы узнать имя автора комментария. Я объяснил добавленный кодированный в комментариях как суффикс.

function force_comment_author_url($comment)
{
    // does the comment have a valid author URL?
    $no_url = !$comment->comment_author_url || $comment->comment_author_url == 'http://';

    if ($comment->user_id && $no_url) {
        
        $c_userdata = get_userdata( $comment->user_id ); // Add - Get the userdata from the get_userdata() function and store in the variable c_userdata
        $c_username = $c_userdata->user_login; // Add - Get the name from the $c_userdata

        // comment was written by a registered user but with no author URL
        $comment->comment_author_url = 'http://www.founderslair.com/profile/' . $c_username; // Replace - user_id with username variable.
    }
    return $comment;
}
add_filter('get_comment', 'force_comment_author_url');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...