image_send_to_editor
Позволяет изменить HTML код картинки, вставляемой в редактор по кнопке «Добавить медиафайл». Работает в классическом редакторе.
Использование
add_filter( 'image_send_to_editor', 'wp_kama_image_send_to_editor_filter', 10, 9 ); /** * Function for `image_send_to_editor` filter-hook. * * @param string $html The image HTML markup to send. * @param int $id The attachment ID. * @param string $caption The image caption. * @param string $title The image title. * @param string $align The image alignment. * @param string $url The image source URL. * @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 string $alt The image alternative, or alt, text. * @param string $rel The image rel attribute. * * @return string */ function wp_kama_image_send_to_editor_filter( $html, $id, $caption, $title, $align, $url, $size, $alt, $rel ){ // filter... return $html; }
- $html(строка)
- HTML изображения для вставки в контент.
- $id(число)
- Идентификатор вложения.
- $caption(строка)
- Подпись картинки.
- $title(строка)
- Название изображения (title).
- $align(строка)
- Выравнивание изображения.
- $url(строка)
- URL изображения.
- $size(строка/массив)
- Размер изображения. Размер изображения или массив значений ширины и высоты (в этом порядке).
Default: 'medium' - $alt(строка)
- alt, текст изображения.
- $rel(строка) (WP 5.6)
- rel атрибут изображения.
Примеры
#1 Изменим код вставки изображения вставляемого по кнопке «Добавить медиафайл»
Допустим, при вставке изображения в запись получаем такой код:
<img src="http://example.com/wp-content/uploads/2014/04/1.jpg" alt="рисунок" width="500" height="155" class="alignnone size-full wp-image-79" />
Нужно убрать в src протокол http и добавить class, чтобы не править каждый раз код после вставки картинки. Надо чтобы картинка вставлялась так:
<img src="//example.com/wp-content/uploads/2014/04/1.jpg" alt="рисунок" class="myclass aligncenter" style="width: 100%; max-width: 500px;" />
Решение:
add_filter( 'image_send_to_editor', 'filter_function_name_11', 10, 8 ); function filter_function_name_11( $html, $id, $caption, $title, $align, $url, $size, $alt ){ $html = str_replace( 'http:', '', $html ); // удалим протокол $html = str_replace( 'class="', 'class="myclass ', $html ); // добавим класс return $html; }
Пример взят из вопроса
Список изменений
С версии 2.5.0 | Введена. |
С версии 5.6.0 | The $rel parameter was added. |
Где вызывается хук
image_send_to_editor
wp-admin/includes/media.php 168
$html = apply_filters( 'image_send_to_editor', $html, $id, $caption, $title, $align, $url, $size, $alt, $rel );
Где используется хук в WordPress
wp-includes/default-filters.php 671
add_filter( 'image_send_to_editor', 'image_add_caption', 20, 8 );