¿Cómo agregar class="fancybox" a la galería predeterminada?
Intenté usar este shortcode:
[gallery class="fancybox" link="file" columns="5"]
Pero la clase class="fancybox" no se está agregando a la etiqueta a href de cada imagen.
¿Cómo puedo agregar class="fancybox" a cada etiqueta a href?
PD: ¿dónde está el código fuente de la galería?

Puedes usar javascript/jquery para resolver esto.
Cuando insertas una galería en una publicación de WordPress, toda la galería está envuelta en un div con un ID como "gallery-1" pero también una clase que siempre es "gallery". Además, cada elemento está rodeado por otras dos etiquetas "dl" y "dt", con las clases "gallery-item" y "gallery-icon" respectivamente.
Así que puedes usar jQuery para seleccionar cada enlace dentro de esas clases y añadir cualquier script de lightbox que prefieras.
Si es fancybox, creo que algo así debería funcionar:
jQuery(".gallery-icon a").fancybox();
Puedes ser más específico, seleccionando las clases CSS .gallery .gallery-item .gallery-icon en ese orden y luego el a (para el enlace).
Para las nuevas galerías de Gutenberg, esto debería funcionar:
jQuery(".wp-block-gallery .blocks-gallery-item a").fancybox();
Si quieres que los usuarios puedan navegar entre las imágenes como una galería, entonces usa:
jQuery(".gallery-icon a").fancybox().attr('data-fancybox', 'gallery');
Y para las nuevas galerías de Gutenberg, usa esto en su lugar:
jQuery(".wp-block-gallery .blocks-gallery-item a").fancybox().attr('data-fancybox', 'gallery');
Si quieres un control más granular (para múltiples galerías en la misma página), revisa esta respuesta.
O usa un plugin simple que utiliza el mismo enfoque de Viper007Bond, que lo hace de forma limpia y ordenada, pero usando colorbox en su lugar.

jQuery se ejecuta en modo sin conflicto en WordPress. He modificado tu código en consecuencia. ¡Ah, y bienvenido a WordPress Stack Exchange!

Estas respuestas eran correctas, pero ahora fancybox ha cambiado su especificación. Ya no es rel=gallery, sino "data-fancybox=gallery". Así que los nuevos scripts deberían verse así:
jQuery(".gallery-icon a").fancybox().attr('data-fancybox', 'gallery');
y
jQuery('.gallery').each(function() {
// establecer el rel para cada galería
jQuery(this).find(".gallery-icon a").attr('data-fancybox', 'group-' + jQuery(this).attr('id'));
});

para complementar lo mencionado por @kaiser -
Cada galería idealmente debería obtener un ID único, pero ahora que las entradas y páginas pueden tener múltiples galerías, no es fácil con PHP asignar un identificador rel único a cada galería.
jQuery('.gallery').each(function (g) {
jQuery('a', this).attr('rel', function (i, attr) {
return attr + ' gallery-' + g;
});
});`
Ten cuidado con tus selectores, tu tema podría reescribirlos. Esto se discute en profundidad en http://kaspars.net/blog/wordpress/add-rel-attribute-to-each-gallery-post
