Dzisiaj na jednej z grup supoprtowych pojawiło się następujące pytanie:
Czy da się jakoś zmienić domyślne ustawienia galerii? Chciałbym mieć na start ustawione 4 kolumny oraz linkowanie do pliku, a nie strony załącznika.
No właśnie, da się? Oczywiście, że się da, a potrzebujemy w tym celu poniższych dwóch funkcji:
function prefiks_print_media_templates() {
?>
<script>
jQuery(document).ready(function() {
_.extend(wp.media.galleryDefaults, {
columns: '4',
link: 'file',
});
});
</script>
<?php
}
add_action('print_media_templates', 'prefiks_print_media_templates');
function prefiks_shortcode_atts_gallery($out, $pairs, $atts) {
if ( ! array_key_exists('columns', $atts) || ! intval( $atts['columns'] ) ) {
$out['columns'] = 4;
}
if ( ! array_key_exists('link', $atts) ) {
$out['link'] = 'file';
}
return $out;
}
add_filter('shortcode_atts_gallery', 'prefiks_shortcode_atts_gallery', 10, 3);
Dodatkowe warianty i pytania
-
Naprawdę potrzebuję do tego aż dwóch funkcji?
- Niestety tak. Pierwsza z nich
prefiks_print_media_templatesdba o to, aby w edytorze galerii pojawiały się poprawne wartości jako domyślne. Dba ona także o to, aby domyślne wartości nie były wstawiane w treść wpisu (w końcu są domyślne). Ale ponieważ te wartości nie są zapisywane, to WordPress wygeneruje niepoprawny kod galerii, bo przyjmie tam sobie własne domyślne wartości, a nie nasze. I tu z pomocą przychodzi właśnie druga funkcja, która podmieni te wartości na nasze. -
Ktoś podpowiedział mi, że mogę użyć filtru
post_galleryi stworzyć wÅ‚asny kod galerii. Czy to prawda? - Tak, rzeczywiÅ›cie można zrobić to i w ten sposób. Ale… My przecież chcemy tylko zmienić domyÅ›lne ustawienia, a nie implementować całą galeriÄ™ od nowa i brać na siebie odpowiedzialność za jej kod HTML. RozwiÄ…zanie oparte na
post_gallerynijak nie wpÅ‚ynie też na sam edytor galerii, czyli galeria bÄ™dzie zachowywać siÄ™ niespójnie – w ustawieniach bÄ™dzie widoczne „3 kolumny”, a galeria renderować bÄ™dzie siÄ™ w czterech.