Precisa de ajuda para criar um filtro para editar a saída de “image_send_to_editor”

O que estou tentando fazer é editar a saída de image_send_to_editor para que eu possa fazer a âncora que envolve a imagem com uma class específica e rel .

Planejo basicamente fazer com que cada imagem que seja inserida em uma postagem torne-se capaz de fantasia sem ter que estar em uma galeria ou usar um plugin.

É o que eu tenho até agora, mas eu preciso de ajuda para preencher os espaços em branco …

  

Solutions Collecting From Web of "Precisa de ajuda para criar um filtro para editar a saída de “image_send_to_editor”"

Sua melhor opção aqui seria usar jQuery para pegar qualquer link que ligue a uma imagem e diga para usar fanceybox.

 jQuery(document).ready(function($){ $('a[href$="jpg"], a[href$="png"], a[href$="jpeg"]').fancybox(); }); 

Se você quer que isso funcione apenas para as áreas de conteúdo de suas postagens, use isso:

 $('.post-content a[href$="jpg"], .post-content a[href$="png"], .post-content a[href$="jpeg"]').fancybox(); 

Você precisará replace o conteúdo .post com qualquer elemento pai HTML que envolva a área de conteúdo.

Isso é realmente muito fácil https://wordpress.stackexchange.com//questions/28673/need-help-building-a-filter-to-edit-the-output-of-image-send-to-editor/… o return $html; só vai voltar ao editor o que você enviar para https://wordpress.stackexchange.com//questions/28673/need-help-building-a-filter-to-edit-the-output-of-image-send-to-editor/… então você poderia fazer algo como isto:

 < ?php add_filter( 'image_send_to_editor', 'fancy_capable', 10, 7); function fancy_capable($html, $id, $alt, $title, $align, $url, $size ) { $url = wp_get_attachment_url($id); // Grab the current image URL $html = ''; return $html; } ?> 

Você também pode simplesmente inserir um shortcode (que pode ser mais familiar para o usuário) no lugar do HTML https://wordpress.stackexchange.com//questions/28673/need-help-building-a-filter-to-edit-the-output-of-image-send-to-editor/… e depois ter seu shortcode fazer o trabalho no backend.

 < ?php add_filter( 'image_send_to_editor', 'fancy_capable', 10, 7); function fancy_capable($html, $id, $alt, $title, $align, $url, $size ) { $url = wp_get_attachment_url($id); // Grab the current image URL $html = '[image src="' . $url . '" fancybox="true" /]'; return $html; } ?> 

Encontrei alguns exemplos de usar expressões regulares para adicionar algumas classs ao HTML. Isso funciona para mim:

 add_filter('image_send_to_editor', 'add_class_to_image', 10, 8); 

com a seguinte function:

 function add_class_to_image($html, $id, $caption, $title, $align, $url, $size, $alt='') { $classs_to_add = 'media-img'; if (preg_match('//', $html)) $html = preg_replace('/()/', '$1 ' . $classs_to_add . '$2', $html); else $html = preg_replace('/(/', '$1 class="' . $classs_to_add . '">', $html); return $html; } 

Então, no meu arquivo style.css, eu a.media-img o seletor a.media-img .