Функция get_comment_author_link() в WordPress: синтаксис, примеры использования

## Функция GET_COMMENT_AUTHOR_LINK() │ WP 1.5.0

Функция get_comment_author_link() позволяет получить HTML-ссылку на страницу автора текущего комментария. 

Эта функция основана на get_comment_author_url() и get_comment_author(), которые используют функцию get_comment(). Если параметр $comment_id не указан, использует��я глобальная переменная комментария.

### Используется в:
- get_comment_author_url()
- get_comment_author()

### Используется функцией:
- comment_author_link()

### Хуки функции

- comment_author_link_rel
- get_comment_author_link

### Возвращаемое значение

Строка. Имя автора комментария или HTML-ссылка на страницу автора.

### Синтаксис использования

```php
get_comment_author_link( $comment_id );

Параметры

  • $comment_id (int|WP_Comment) — Идентификатор комментария или объект WP_Comment, для которого нужно получить ссылку на автора. По умолчанию используется текущий комментарий.

Примеры использования

1. Получение имени автора комментария в виде ссылки на его сайт

Предположим, что в цикле комментариев нам нужно отобразить имя автора комментария как ссылку на его сайт:

$author = get_comment_author_link();
echo $author;

Результат:

Eugene

Если у автора нет ссылки на сайт, результат будет:

Eugene

2. Указание идентификатора комментария

$author = get_comment_author_link( 76 );
echo $author;

Результат:

Eugene

Изменения в версии

  • С 1.5.0 - функция была введена.
  • С 4.4.0 - добавлена возможность передавать объект WP_Comment в качестве $comment_id.

Код функции

function get_comment_author_link( $comment_id = 0 ) {
    $comment = get_comment( $comment_id );

    if ( ! empty( $comment->comment_ID ) ) {
        $comment_id = $comment->comment_ID;
    } elseif ( is_scalar( $comment_id ) ) {
        $comment_id = (string) $comment_id;
    } else {
        $comment_id = '0';
    }

    $comment_author_url = get_comment_author_url( $comment );
    $comment_author     = get_comment_author( $comment );

    if ( empty( $comment_author_url ) || 'http://' === $comment_author_url ) {
        $comment_author_link = $comment_author;
    } else {
        $rel_parts = array( 'ugc' );
        if ( ! wp_is_internal_link( $comment_author_url ) ) {
            $rel_parts = array_merge(
                $rel_parts,
                array( 'external', 'nofollow' )
            );
        }

        $rel_parts = apply_filters( 'comment_author_link_rel', $rel_parts, $comment );
        $rel = implode( ' ', $rel_parts );
        $rel = esc_attr( $rel );
        $rel = ! empty( $rel ) ? sprintf( ' rel="%s"', $rel ) : '';

        $comment_author_link = sprintf(
            '%3$s',
            $comment_author_url,
            $rel,
            $comment_author
        );
    }

    return apply_filters( 'get_comment_author_link', $comment_author_link, $comment_author, $comment_id );
}

Связанные функции

  • add_comment_meta()
  • clean_comment_cache()
  • get_comment_author()
  • get_comment_author_url()
  • comment_author()
  • comment_author_link()
  • и другие

Эти функции помогут вам работать с комментариями в WordPress более эффективно и гибко.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *