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 Малюнок 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 image source URL. * @param string|int[] $size Requested image size. Чи можна будь-який записаний image size name, або array of width and height values in pixels (in that order). * @param string $alt image alternative, або 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 був 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 631
add_filter( 'image_send_to_editor', 'image_add_caption', 20, 8);