Dodanie efektu lightbox do natywnej galerii WordPress
Jeśli nie chcemy stosować dodatkowego plugina z efektem lightbox, który doda swój skrypt na każdej stronie możemy zastosować rozwiązanie pozwalające wykorzystać skrypt lightbox i dodać tylko do wybranych stron.
ja korzystam z efektu lightbox2 od lokesh – do pobrania tutaj.
W footer.php zaznaczam by plik. js pobierał się tylko do wybranej strony poprzez kod:
<?php if ( is_page(3901) ) { ?>
<!-- //gallery -->
<link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/js/lightbox.css"/>
<script type="text/javascript" src="<?php echo get_template_directory_uri(); ?>/js/lightbox.js"></script>
<?php } ?>
Kod który pozwala dodać do konkretnej strony do treści odpowiedni atrybut:
add_filter('wp_get_attachment_link', 'nws_add_gallery_attr');
function nws_add_gallery_attr($link) {
if ( is_page(3901) ) {
global $post;
return str_replace('<a href', '<a data-lightbox="lightboxgallery" href', $link);
}
}
Ciekawym rozwiązaniem może tez być modyfikacja z użyciem filtra the_content, jak w tym prostym przykładzie gdzie tylko dodajemy tekst po głównej treści
function nws_added_page_content ( $content ) {
if ( is_page(39011) ) {
return $content . '<p>Your content added to pages (not posts).</p>';
}
return $content;
}
add_filter( 'the_content', 'nws_added_page_content');
Jeszcze te rozwiązania mogą być ciekawe ale nie miałam okazji ich przetestować.
Add data attribute to a gallery link
Adding a lightbox to WordPress
Hope this helps and happy coding :)
Zobacz jeszcze
Wordpress - jak sprawdzić czy w treści jest użyty shortcode
Kiedy potrzebujemy zamieścić skrypt, który jest tylko umieszczany wtedy kiedy zamieszczamy konkretny shortcode w treści strony, można skorzystać z funkcji has_shortcode gdzie jako pierwszy...