WordPress как на ладони
Прибыльная монетизация. Выгодно. Безопасно. Стабильно.

image_send_to_editorхук-фильтрWP 2.5.0

Позволяет изменить 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 атрибут изображения.

Примеры

0

#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.

Где вызывается хук

get_image_send_to_editor()
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 638
add_filter( 'image_send_to_editor', 'image_add_caption', 20, 8 );
1 комментарий
    Войти