J'essaie d'ajouter une entrée de texte au modal "Insérer un média" dans l'espoir de pouvoir ajouter un data-
attribut html5 à l'ancre parent des images.
<a class="fancybox" href="..." data-fancybox-group=" ">
<- Cette partie
<img class="wp-image-871" src="..." alt="..." width="245" height="333" />
</a>
Jusqu'à présent, j'ai pu ajouter l'entrée au modal:
En utilisant le code ci-dessous dans mon fichier 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 );
Et j'ai ajouté data-fancybox-group=""
l'ancre à l'aide de:
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);
C'est là que je suis coincé ... J'ai un endroit pour entrer les données et j'ai un endroit pour les données, mais je ne sais pas comment obtenir les données de l'entrée aux données -fancybox-group attribut.
la source
delete_post_meta($id, 'fancyboxGroup');
devrait supprimer l'attribut stocké, mais je ne sais pas comment le faire démarrer aprèsimage_send_to_editor
.Je ne sais pas si c'est la meilleure chose pour vous, mais je suppose que vous pourriez l'essayer.
Obtenez les données du champ de saisie et placez-les dans le formulaire sur une entrée cachée ou quelque chose et faites l'attribut de données lorsque la fenêtre de la sélection de média se fermera
Je sais que cela semble fou, mais cela pourrait être très simple pour vous et cela pourrait faire l'affaire.
la source
.data()
qu'on doit l'utiliser api.jquery.com/jquery.data