Как обернуть каждое изображение в сообщении с помощью div?

Когда я добавляю изображение в сообщение, я хочу, чтобы он находился в div, например, и я хочу, чтобы это было сделано автоматически, поэтому мне не нужно делать это в редакторе HTML. Я не хочу использовать js для выполнения этого и, кстати, я хочу знать, как автоматически добавлять пользовательские классы к изображению в сообщении. Ура!

Solutions Collecting From Web of "Как обернуть каждое изображение в сообщении с помощью div?"

По умолчанию изображения уже имеют уникальный класс, но это зависит от вашей темы. Используйте firebug и наведите указатель мыши на изображения, и вы увидите такие вещи, как class="aligncenter size-full wp-image-1525" .

Если вы хотите изменить класс или идентификатор или изменить любые атрибуты изображения, вы можете использовать фильтр get_image_tag . Например,

 add_filter('get_image_tag_class','my_custom_class'); function my_custom_class($class){ $class='my_custom_name'; return $class; } 

Я нашел следующий код, проведя некоторые исследования. Вы можете легко обернуть изображение Post в Div с помощью встроенного фильтра WordPress, то есть image_send_to_editor . Вот пример,

 if( is_admin() ) { add_filter( 'image_send_to_editor', 'wp_image_wrap_init', 10, 8 ); function wp_image_wrap_init( $html, $id, $caption, $title, $align, $url, $size, $alt ) { return '<div id="wp-image-wrap-'. $id .'" class="wp-image-wrap">'. $html .'</div>'; } } 

Благодаря http://wpalkane.com/hacks/wrap-post-image-inside-div-automatically/

Ответ был близким, но недостаточно, потому что контрольная точка hook для get_image_tag_ class () изменяет только атрибут класса. Поэтому я играл и выяснял , что правильная вещь для обертывания каждого изображения – get_image_tag (), поэтому код выглядит следующим образом:

 function my_image_tag($html, $id , $alt, $title){ $html = "<div class='**wrap-div**'>" . $html . "</div>"; return $html; } add_filter('get_image_tag','my_image_tag',10,4); 

Вы ответили частично правильно, так что это лучший вариант.) Приветствую вас и благодарю за вашу помощь.

ответы здесь можно разделить на 2 метода:

1) функции, которые работают в ПОСТ-РЕДАКТОРЕ (back-end) (см. Опубликованные ответы)
2), которые работают в POST OUTPUT (front-end)

ps другие методы для изменения выходного интерфейса:

а)

 function my_image_class_filter($classes) { return $classes . ' another-image-class'; } add_filter('get_image_tag_class', 'my_image_class_filter'); 

б)

 function add_post_image_class($content) { return preg_replace('/<img(.*?)class="(.*?)"/', '<img $1 class="$2 YOUR_CLASS_NAME"', $content); } add_filter( 'the_content', 'add_post_image_class' );