Получение ссылки для редактирования комментария без проблем

Получение ссылки для редактирования комментария (get_edit_comment_link)

Функция get_edit_comment_link() позволяет получить ссылку для редактирования комментария в WordPress.

Использование функции

Эта функция используется внутри другой функции — edit_comment_link(). Ниже приведены основные параметры и информация о производительности.

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

  • Выполнение один раз: 0.0028741 сек (очень медленно).
  • Выполнение 50,000 раз: 6.57 сек (быстро).
  • PHP версия: 7.3.12, WordPress версия 5.3.2.

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

Функция возвращает строку с URL для редактирования комментария. Если комментарий не существует или текущий пользователь не имеет прав на редактирование, возвращается null.

Синтаксис

get_edit_comment_link( $comment_id, $context );

Параметры

  • $comment_id (int|WP_Comment): ID комментария или объект WP_Comment.
  • $context (string): Контекст, в котором будет использоваться URL:
    • 'display' — включает HTML-сущности (по умолчанию).
    • 'url' — возвращает URL без HTML-сущностей.

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

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

echo get_edit_comment_link( 2020 );
// Результат: http://example.com/wp-admin/comment.php?action=editcomment&c=2020

Пример 2: Получение полного основного HTML-ссылки

Этот пример показывает, как создать ссылку с помощью edit_comment_link():

echo '✎ Редактировать';

Код функции

Ниже представлен исходный код функции get_edit_comment_link() из файла wp-includes/link-template.php:


function get_edit_comment_link( $comment_id = 0, $context = 'display' ) {
$comment = get_comment( $comment_id );

if ( ! is_object( $comment ) || ! current_user_can( 'edit_comment', $comment->comment_ID ) ) {
    return;
}

if ( 'display' === $context ) {
    $action = 'comment.php?action=editcomment&c=';
} else {
    $action = 'comment.php?action=editcomment&c=';
}

$location = admin_url( $action ) . $comment->comment_ID;

// Обеспечивает то, чтобы переменная $comment_id всегда была ID.
$comment_id = (int) $comment->comment_ID;

/**
 * Фильтрует ссылку для редактирования комментария.
 *
 * @param string $location   Ссылка для редактирования.
 * @param int    $comment_id Уникальный ID комментария для генерации ссылки.
 * @param string $context    Контекст для включения HTML-сущностей в ссылку. По умолчанию 'display'.
 */
return apply_filters( 'get_edit_comment_link', $location, $comment_id, $context );

}

Изменения

  • Версия 2.3.0: Функция была введена.
  • Версия 6.7.0: Добавлен параметр $context.

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

  • cancel_comment_reply_link()
  • comment_author_email_link()
  • comment_form()
  • get_comment()
  • wp_insert_comment()

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

Leave a Reply

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