Come aggiungere class="fancybox" alla galleria predefinita?
Ho provato questo shortcode:
[gallery class="fancybox" link="file" columns="5"]
Ma class="fancybox" non viene aggiunto al tag a href di ogni immagine.
Come posso aggiungere class="fancybox" ad ogni tag a href?
PS: dove si trova il codice sorgente della galleria?

Puoi utilizzare javascript/jquery per risolvere questo problema.
Quando inserisci una galleria in un articolo di WordPress, l'intera galleria è racchiusa in un div con un id come "gallery-1" ma anche una classe che è sempre "gallery". Inoltre, ogni elemento è circondato da altri due tag "dl" e "dt", con le classi "gallery-item" e "gallery-icon" rispettivamente.
Quindi, puoi semplicemente usare jQuery per selezionare ogni link all'interno di quelle classi e aggiungere lo script lightbox che preferisci.
Se stai usando fancybox, penso che qualcosa come questo dovrebbe funzionare:
jQuery(".gallery-icon a").fancybox();
Puoi essere più specifico, selezionando le classi CSS .gallery .gallery-item .gallery-icon in quell'ordine e poi il tag a (per il link).
Per le nuove gallerie Gutenberg, questo dovrebbe funzionare:
jQuery(".wp-block-gallery .blocks-gallery-item a").fancybox();
Se vuoi che gli utenti possano navigare tra le immagini come una galleria, allora usa:
jQuery(".gallery-icon a").fancybox().attr('data-fancybox', 'gallery');
E per le nuove gallerie Gutenberg, usa invece questo:
jQuery(".wp-block-gallery .blocks-gallery-item a").fancybox().attr('data-fancybox', 'gallery');
Se desideri un controllo più granulare (per più gallerie sulla stessa pagina), controlla questa risposta.
Oppure usa un semplice plugin che utilizza lo stesso approccio di Viper007Bond, che funziona in modo pulito ed elegante, ma utilizzando colorbox invece.

jQuery funziona in modalità no-conflict in WordPress. Ho modificato il tuo codice di conseguenza. Ah, e benvenuto su WordPress Stack Exchange!

Queste risposte erano tutte corrette ma ora fancybox ha modificato le sue specifiche. Non si usa più rel=gallery, ma "data-fancybox=gallery". Quindi i nuovi script dovrebbero essere così:
jQuery(".gallery-icon a").fancybox().attr('data-fancybox', 'gallery');
e
jQuery('.gallery').each(function() {
// imposta l'attributo rel per ogni galleria
jQuery(this).find(".gallery-icon a").attr('data-fancybox', 'group-' + jQuery(this).attr('id'));
});

per ampliare quanto detto da @kaiser -
Ogni galleria idealmente dovrebbe avere un ID univoco, ma dato che ora post e pagine possono contenere più gallerie, non è semplice con PHP assegnare a ogni galleria un identificatore rel univoco.
jQuery('.gallery').each(function (g) {
jQuery('a', this).attr('rel', function (i, attr) {
return attr + ' gallery-' + g;
});
});`
Fai attenzione ai selettori, il tuo tema potrebbe modificarli. Questo argomento è discusso in dettaglio su http://kaspars.net/blog/wordpress/add-rel-attribute-to-each-gallery-post
