как автоматически обернуть шорткод подписи вокруг изображения при использовании Insert Media в Wordpress

Я использую WP 3.6.1, и когда я вставляю изображение на экран добавления\редактирования сообщения, он генерирует текст, например

<a href="...">
<img class="alignnone size-medium wp-image-8858" alt="..." src="..." width="300" height="168"/>
</a>

Но я бы хотел, чтобы шорткод подписи также генерировался автоматически. Вот пример:

[caption id="attachment_8858" align="alignnone" width="300"]
<a href="...">
<img class="alignnone size-medium wp-image-8858" alt="..." src="..." width="300" height="168"/>
</a>Caption text
[/caption]

Как это могло быть достигнуто? Я знаю, что некоторые темы\плагины позволяют это сделать, но я не могу найти такие.

заранее спасибо


person temkin    schedule 13.10.2013    source источник


Ответы (1)


Вы используете хук-фильтр image_send_to_editor. Это позволяет манипулировать вставляемым HTML.

<?php
/**
 * Plugin Name: Add Caption to Inserted Images
 */

add_filter( 'image_send_to_editor', 'b5f_image_to_editor', 10, 8 ); 
function b5f_image_to_editor( $html, $id, $caption, $title, $align, $url, $size, $alt )
{
    // Manipulate the HTML
    return $html;
}

Значения, которые передаются в простом тесте:

[html]      => <a href="http://example.dev/wp-content/uploads/image.png"><img src="http://example.dev/wp-content/uploads/image.png" alt="alternate text" width="128" height="128" class="alignnone size-full wp-image-176" /></a>
[id]        => 176
[caption]   => 
[title]     => 
[align]     => none
[url]       => http://example.dev/wp-content/uploads/image.png
[size]      => full
[alt]       => alternate text
person brasofilo    schedule 14.10.2013