Estoy tratando de agregar una entrada de texto al modal "Insertar medios" con la esperanza de poder agregar un data-
atributo html5 al ancla principal de las imágenes.
<a class="fancybox" href="..." data-fancybox-group=" ">
<- Esta parte
<img class="wp-image-871" src="..." alt="..." width="245" height="333" />
</a>
Hasta ahora he podido agregar la entrada al modal:
Usando el siguiente código en mi archivo 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 );
Y he agregado el data-fancybox-group=""
al ancla 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);
Aquí es donde estoy atascado ... Tengo un lugar para ingresar los datos y tengo un lugar para que vayan los datos, pero no estoy seguro de cómo obtener los datos de la entrada a los datos -fancybox-group atributo.
fuente
delete_post_meta($id, 'fancyboxGroup');
eliminar el atributo almacenado, pero no estoy seguro de cómo hacer que se active despuésimage_send_to_editor
.No estoy seguro de si esto es lo mejor para ti, pero supongo que podrías intentarlo.
Obtenga los datos del campo de entrada y colóquelos en el formulario en una entrada oculta o algo así y haga el atributo de datos cuando se cierre la ventana de Selección de medios
Sé que esto suena loco, pero podría ser muy simple para ti y podría ser el truco.
fuente
.data()
se debe usar api.jquery.com/jquery.data