wp_get_attachment_link

Позволяет изменить полученную ссылку на страницу вложения
Хук WordPress
INT 2.7.0
WordPress Icon

Описание хука

Хук «wp_get_attachment_link» позволяет определить и изменить HTML-код ссылки на страницу вложения.

Когда функция «wp_get_attachment_link» вызывается для получения ссылки на страницу вложения, хук «wp_get_attachment_link» позволяет изменить или дополнить HTML-код ссылки перед его выводом.

Использование

apply_filters( 'wp_get_attachment_link', string $link_html, int|WP_Post $post, string|int[] $size, bool $permalink, bool $icon, string|false $text, array|string $attr )

Где:

  • $link_html (string) — HTML-код ссылки на страницу вложения.
  • $post (int|WP_Post) — ID или объект записи. Может быть 0 для текущей глобальной записи.
  • $size (string|int[]) — Запрошенный размер изображения. Может быть именем зарегистрированного размера изображения или массивом значений ширины и высоты в пикселях (в указанном порядке).
  • $permalink (bool) — Добавлять ли постоянную ссылку на изображение. По умолчанию false.
  • $icon (bool) — Включать ли иконку.
  • $text (string|false) — Если строка, будет использоваться в качестве текста ссылки.
  • $attr (array|string) — Массив или строка атрибутов.
<?php
/**
 * Пример использования хука "wp_get_attachment_link"
 *
 * @param string $link_html HTML-код ссылки на страницу вложения.
 * @param int|WP_Post $post ID или объект записи.
 * @param string|int[] $size Запрошенный размер изображения.
 * @param bool $permalink Добавлять ли постоянную ссылку на изображение.
 * @param bool $icon Включать ли иконку.
 * @param string|false $text Если строка, будет использоваться в качестве текста ссылки.
 * @param array|string $attr Массив или строка атрибутов.
 * @return string Измененный HTML-код ссылки на страницу вложения.
 */
function custom_get_attachment_link( $link_html, $post, $size, $permalink, $icon, $text, $attr ) {
    // Ваш код для изменения или дополнения HTML-кода ссылки
    
    return $link_html;
}
add_filter( 'wp_get_attachment_link', 'custom_get_attachment_link', 10, 7 );

В приведенном примере кода создается пользовательская функция «custom_get_attachment_link», которая принимает все параметры хука «wp_get_attachment_link». Внутри функции вы можете изменить или дополнить HTML-код ссылки на страницу вложения и вернуть измененный код с помощью оператора «return». Затем функция добавляется в хук «wp_get_attachment_link» с помощью функции «add_filter».

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

Применение фильтра к ссылке на страницу вложения


/**
 * Пример применения фильтра к ссылке на страницу вложения.
 *
 * @param string $link_html The page link HTML output.
 * @param int|WP_Post $post Post ID or object. Can be 0 for the current global post.
 * @param string|int[] $size Requested image size. Can be any registered image size name, or an array of width and height values in pixels (in that order).
 * @param bool $permalink Whether to add permalink to image. Default false.
 * @param bool $icon Whether to include an icon.
 * @param string|false $text If string, will be link text.
 * @param array|string $attr Array or string of attributes.
 * @return string The modified page link HTML output.
 */
function custom_wp_get_attachment_link( $link_html, $post, $size, $permalink, $icon, $text, $attr ) {
    // Ваш код здесь
    return $link_html;
}
add_filter( 'wp_get_attachment_link', 'custom_wp_get_attachment_link', 10, 7 );

Изменение размера изображения в ссылке на страницу вложения


/**
 * Пример изменения размера изображения в ссылке на страницу вложения.
 *
 * @param string $link_html The page link HTML output.
 * @param int|WP_Post $post Post ID or object. Can be 0 for the current global post.
 * @param string|int[] $size Requested image size. Can be any registered image size name, or an array of width and height values in pixels (in that order).
 * @param bool $permalink Whether to add permalink to image. Default false.
 * @param bool $icon Whether to include an icon.
 * @param string|false $text If string, will be link text.
 * @param array|string $attr Array or string of attributes.
 * @return string The modified page link HTML output.
 */
function custom_wp_get_attachment_link( $link_html, $post, $size, $permalink, $icon, $text, $attr ) {
    // Изменяем размер изображения на 500x500 пикселей
    $size = array( 500, 500 );
    return $link_html;
}
add_filter( 'wp_get_attachment_link', 'custom_wp_get_attachment_link', 10, 7 );

Добавление атрибутов к ссылке на страницу вложения


/**
 * Пример добавления атрибутов к ссылке на страницу вложения.
 *
 * @param string $link_html The page link HTML output.
 * @param int|WP_Post $post Post ID or object. Can be 0 for the current global post.
 * @param string|int[] $size Requested image size. Can be any registered image size name, or an array of width and height values in pixels (in that order).
 * @param bool $permalink Whether to add permalink to image. Default false.
 * @param bool $icon Whether to include an icon.
 * @param string|false $text If string, will be link text.
 * @param array|string $attr Array or string of attributes.
 * @return string The modified page link HTML output.
 */
function custom_wp_get_attachment_link( $link_html, $post, $size, $permalink, $icon, $text, $attr ) {
    // Добавляем класс "attachment-link" к ссылке
    $attr['class'] = 'attachment-link';
    return $link_html;
}
add_filter( 'wp_get_attachment_link', 'custom_wp_get_attachment_link', 10, 7 );

Изменение текста ссылки на страницу вложения


/**
 * Пример изменения текста ссылки на страницу вложения.
 *
 * @param string $link_html The page link HTML output.
 * @param int|WP_Post $post Post ID or object. Can be 0 for the current global post.
 * @param string|int[] $size Requested image size. Can be any registered image size name, or an array of width and height values in pixels (in that order).
 * @param bool $permalink Whether to add permalink to image. Default false.
 * @param bool $icon Whether to include an icon.
 * @param string|false $text If string, will be link text.
 * @param array|string $attr Array or string of attributes.
 * @return string The modified page link HTML output.
 */
function custom_wp_get_attachment_link( $link_html, $post, $size, $permalink, $icon, $text, $attr ) {
    // Изменяем текст ссылки на "Подробнее"
    $text = 'Подробнее';
    return $link_html;
}
add_filter( 'wp_get_attachment_link', 'custom_wp_get_attachment_link', 10, 7 );

Удаление иконки из ссылки на страницу вложения


/**
 * Пример удаления иконки из ссылки на страницу вложения.
 *
 * @param string $link_html The page link HTML output.
 * @param int|WP_Post $post Post ID or object. Can be 0 for the current global post.
 * @param string|int[] $size Requested image size. Can be any registered image size name, or an array of width and height values in pixels (in that order).
 * @param bool $permalink Whether to add permalink to image. Default false.
 * @param bool $icon Whether to include an icon.
 * @param string|false $text If string, will be link text.
 * @param array|string $attr Array or string of attributes.
 * @return string The modified page link HTML output.
 */
function custom_wp_get_attachment_link( $link_html, $post, $size, $permalink, $icon, $text, $attr ) {
    // Удаляем иконку из ссылки
    $icon = false;
    return $link_html;
}
add_filter( 'wp_get_attachment_link', 'custom_wp_get_attachment_link', 10, 7 );

Вопросы и ответы

Как изменить HTML-разметку ссылки на страницу вложения?

Для изменения HTML-разметки ссылки на страницу вложения в WordPress можно использовать хук wp_get_attachment_link. Этот хук позволяет изменить вывод ссылки на страницу вложения, добавив или изменив HTML-код.

Пример использования хука wp_get_attachment_link:

// Функция-обработчик хука
function custom_attachment_link($link_html, $post, $size, $permalink, $icon, $text, $attr) {
    // Изменяем HTML-разметку ссылки на страницу вложения
    $link_html = '<div class="custom-link">' . $link_html . '</div>';
    return $link_html;
}
add_filter('wp_get_attachment_link', 'custom_attachment_link', 10, 7);

Как изменить размер изображения в ссылке на страницу вложения?

Для изменения размера изображения в ссылке на страницу вложения в WordPress можно использовать параметр $size функции-обработчика хука wp_get_attachment_link. Этот параметр позволяет указать требуемый размер изображения.

Пример использования параметра $size:

// Функция-обработчик хука
function custom_attachment_link($link_html, $post, $size, $permalink, $icon, $text, $attr) {
    // Изменяем размер изображения в ссылке на страницу вложения
    $size = 'thumbnail';
    return $link_html;
}
add_filter('wp_get_attachment_link', 'custom_attachment_link', 10, 7);

Для добавления пермалинка к изображению в ссылке на страницу вложения в WordPress можно использовать параметр $permalink функции-обработчика хука wp_get_attachment_link. Этот параметр позволяет указать, нужно ли добавить пермалинк.

Пример использования параметра $permalink:

// Функция-обработчик хука
function custom_attachment_link($link_html, $post, $size, $permalink, $icon, $text, $attr) {
    // Добавляем пермалинк к изображению в ссылке на страницу вложения
    $permalink = true;
    return $link_html;
}
add_filter('wp_get_attachment_link', 'custom_attachment_link', 10, 7);

Как добавить иконку к ссылке на страницу вложения?

Для добавления иконки к ссылке на страницу вложения в WordPress можно использовать параметр $icon функции-обработчика хука wp_get_attachment_link. Этот параметр позволяет указать, нужно ли включить иконку.

Пример использования параметра $icon:

// Функция-обработчик хука
function custom_attachment_link($link_html, $post, $size, $permalink, $icon, $text, $attr) {
    // Добавляем иконку к ссылке на страницу вложения
    $icon = true;
    return $link_html;
}
add_filter('wp_get_attachment_link', 'custom_attachment_link', 10, 7);

Как изменить текст ссылки на страницу вложения?

Для изменения текста ссылки на страницу вложения можно использовать хук wp_get_attachment_link. Этот хук позволяет изменить HTML-код ссылки перед его выводом.

Пример использования хука:

// Функция-обработчик хука
function custom_attachment_link_text($link_html, $post, $size, $permalink, $icon, $text, $attr) {
    // Изменяем текст ссылки на "Подробнее"
    $link_html = str_replace('Ссылка на страницу вложения', 'Подробнее', $link_html);
    return $link_html;
}
add_filter('wp_get_attachment_link', 'custom_attachment_link_text', 10, 7);

Как добавить атрибуты к ссылке на страницу вложения?

Для добавления атрибутов к ссылке на страницу вложения также можно использовать хук wp_get_attachment_link. Этот хук позволяет изменить HTML-код ссылки и добавить к нему нужные атрибуты.

Пример использования хука:

// Функция-обработчик хука
function custom_attachment_link_attributes($link_html, $post, $size, $permalink, $icon, $text, $attr) {
    // Добавляем атрибуты class и target
    $attr['class'] = 'attachment-link';
    $attr['target'] = '_blank';
    
    // Преобразуем массив атрибутов в строку
    $attributes = '';
    foreach ($attr as $name => $value) {
        $attributes .= $name . '="' . esc_attr($value) . '" ';
    }
    
    // Добавляем атрибуты к HTML-коду ссылки
    $link_html = str_replace('<a ', '<a ' . $attributes, $link_html);
    
    return $link_html;
}
add_filter('wp_get_attachment_link', 'custom_attachment_link_attributes', 10, 7);

Как получить ID или объект текущего глобального поста?

Для получения ID или объекта текущего глобального поста можно использовать переменную $post. Если значение переменной равно 0, то это означает, что текущий глобальный пост не определен.

Пример получения ID текущего глобального поста:

// Получаем ID текущего глобального поста
$post_id = $post->ID;

Как получить URL изображения в ссылке на страницу вложения?

Для получения URL изображения в ссылке на страницу вложения можно использовать функцию wp_get_attachment_image_src. Эта функция возвращает массив с информацией о изображении, включая его URL.

Пример получения URL изображения:

// Получаем URL изображения
$image_url = wp_get_attachment_image_src($post->ID, 'full');
$image_url = $image_url[0];

Хук wp_get_attachment_link позволяет изменить текст ссылки на страницу вложения, добавить атрибуты к ссылке, получить ID или объект текущего глобального поста и получить URL изображения в ссылке. Используя этот хук, разработчики могут легко настроить вывод ссылок на страницы вложений в WordPress.

Связанные элементы

  • Функция wp_get_attachment_image(): Возвращает HTML-код для вставки изображения, прикрепленного к записи.
  • Функция wp_get_attachment_image_src(): Возвращает URL, ширину и высоту изображения, прикрепленного к записи.
  • Функция wp_get_attachment_caption(): Возвращает подпись к изображению, прикрепленному к записи.
  • Функция wp_get_attachment_metadata(): Возвращает метаданные изображения, прикрепленного к записи.
  • Функция wp_get_attachment_thumb_file(): Возвращает путь к миниатюре изображения, прикрепленного к записи.
  • Функция wp_get_attachment_thumb_url(): Возвращает URL миниатюры изображения, прикрепленного к записи.
  • Хук wp_get_attachment_image_attributes: Фильтрует атрибуты изображения, прикрепленного к записи.
  • Класс WP_Image_Editor: Используется для редактирования изображений, прикрепленных к записи.
Обсуждение