Estou tentando adicionar uma entrada de texto ao modal "Inserir mídia" na esperança de poder adicionar um data-
atributo html5 à âncora pai das imagens.
<a class="fancybox" href="..." data-fancybox-group=" ">
<- Esta parte
<img class="wp-image-871" src="..." alt="..." width="245" height="333" />
</a>
Até agora, consegui adicionar a entrada ao modal:
Usando o código abaixo no meu arquivo functions.php:
function add_fancybox_input( $form_fields, $post ) {
$form_fields['fancyboxGroup'] = array(
'label' => 'fancybox group',
'input' => 'text',
'value' => 'testing',
'helps' => 'use this to group images in fancybox',
);
return $form_fields;
}
add_filter( 'attachment_fields_to_edit', 'add_fancybox_input', 10, 2 );
E eu adicionei o data-fancybox-group=""
na âncora usando:
function give_linked_images_class($html, $id, $caption, $title, $align, $url, $size, $alt = '' ){
$classes = 'fancybox'; // separated by spaces, e.g. 'img image-link'
// check if there are already classes assigned to the anchor
if ( preg_match('/<a.*? class=".*?">/', $html) ) {
$html = preg_replace('/(<a.*? class=".*?)(".*?>)/', '$1 ' . $classes . '$2', $html);
} else {
$html = preg_replace('/(<a.*?)>/', '$1 class="' . $classes . '" data-fancybox-group="" >', $html);
}
return $html;
}
add_filter('image_send_to_editor','give_linked_images_class',10,8);
É aqui que eu estou preso ... Eu tenho um lugar para inserir os dados e eu tenho um lugar para os dados irem, mas não tenho certeza de como obter os dados da entrada para os dados atributo -fancybox-group.
fonte
delete_post_meta($id, 'fancyboxGroup');
excluir o atributo armazenado, mas não tenho certeza de como fazê-lo disparar depoisimage_send_to_editor
.Não tenho certeza se essa é a melhor coisa para você, mas acho que você pode tentar.
Obtenha os dados do campo de entrada e coloque-os no formulário em uma entrada oculta ou algo assim e faça o atributo de dados quando a janela da Seleção de mídia for fechada
Eu sei que isso parece loucura, mas pode ser muito simples para você e pode funcionar.
fonte
.data()
é feito para ser usado api.jquery.com/jquery.data