Non so, potrebbe essere che lo script della galleria sia eseguito comunque prima dell'inclusione di jQuery. Bisognerebbe vedere la pagina in azione per capire cosa avviene.
Infatti l'errore "$ is not a function" è generalmente dato dal fatto che jQuery (sempre che la variabile $ faccia riferimento a tale libreria) non è stata inclusa correttamente o risulta comunque inclusa dopo l'esecuzione degli script che ne fanno uso.
Presumo tu sappia già (ma è sempre bene tenerlo presente) che la libreria jQuery, come vari altri framework, deve essere inclusa necessariamente "prima" degli script che ne fanno uso.
In genere è possibile includere qualsiasi script sia nell'<head> sia nel <body>, non c'è una regola fissa o un metodo più corretto dell'altro ma la sostanziale differenza sta nel fatto che quando si inserisce uno script in <head> il DOM (cioè tutti i contenuti HTML della pagina) non sono ancora stati creati e non possono essere quindi manipolati, perché la lettura del documento HTML (nella fase di parsing) avviene dall'alto al basso e gli elementi vengono creati di volta in volta durante questa fase.
Se si esegue uno script che deve far riferimento ad un qualche elemento presente nella pagina, deve essere eseguito dopo che l'elemento è stato creato e quindi risulta disponibile. Un tale script lo si può includere in <head> ma sarà necessario eseguirlo tramite un qualche evento che determini almeno l'avvenuto caricamento del DOM; vedi l'evento DOMContentLoaded o l'analogo metodo ready() (di jQuery). Ovviamente questo accorgimento non serve se lo stesso script viene incluso (e quindi eseguito) alla fine del <body>; in tal caso infatti il contenuto del DOM è presumibilmente già disponibile. Per tale motivo si tende ad inserire gli script alla fine del body, ma in alcuni casi potrebbe risultare più comodo inserirli in <head>.
Nella funzione wp_enqueue_script l'ultimo parametro ($in_footer) stabilisce se includere lo script alla fine del <body> o viceversa in <head>.
Librerie/framework possono essere incluse (e forse sarebbe meglio) in <head> così che queste siano disponibili quando "interpellate" dagli script eseguiti di seguito, evitando magari anche errori tipo quello da te riportato. Gli script che si basano su tali librerie possono invece essere posti alla fine del <body>, soprattutto se fanno riferimento ad elementi del DOM, come già spiegato sopra.
Non so dirti riguardo jQuery di default in WP, bisognerebbe capire appunto cosa avviene nella pagina in azione, ma se fosse necessario includere versioni differenti di tale libreria (per il corretto funzionamento di eventuali plugin) va utilizzato opportunamente il metodo noConflict(). Non so se nel tuo caso sia necessario; bisogna capire se effettivamente viene incluso jQuery di default (che dal log pare di no) e se quella gallery funziona con tale versione.
Per ora è tutto, fai sapere.