Hi!
I have a little problem with a current project and the plugin [[LINK href="http://wordpress.org/extend/plugins/wp-jquery-lightbox/"]]WP jQuery Lightbox[[/LINK]]. Like always, when I use the plugin with the gallery shortocde like [gallery link="file"]
it works fine inside the content of the post (the plugin adds the rel="lightbox"
parameter to all the images of the gallery).
But now, I've found a problem using the gallery shortcode ousite the content. I'm running the gallery this way with the do_shortcode function: echo do_shortcode('[gallery link="file"]');
Looking at the plugin code, I see that the filters which add the rel="lightbox" attribute to a gallery inside the content are:
add_filter('the_content', 'jqlb_autoexpand_rel_wlightbox', 99);
add_filter('the_excerpt', 'jqlb_autoexpand_rel_wlightbox', 99);
This filters are only running on the_content and the_excerpt, so I'm trying to add a filter to the do_shortcode function this way but it's not working fine:
add_filter('do_shortcode', 'jqlb_autoexpand_rel_wlightbox', 99);
Do you know how can I make the do_shortcode function work?
Oleg Butuzov answers:
have you tried
apply_fitlers('the_content', '[gallery link="file"]');
note - current post_id and post shoue be defined.
Andreu Llos comments:
I don't need to apply the filter into the content, I want to apply it outsite the content with the do_shortcode function!
Oleg Butuzov comments:
do_shortcode - line 144
wp-includes/shortcodes.php
do_shortcode_tag - line 193
wp-includes/shortcodes.php
same - line 296
add_filter('the_content', 'do_shortcode', 11); // AFTER wpautop()
happy debuging man...!
shortcodes dosn't have filters. but you can do that with <strong>the_content</strong>
or you can remove or add shortcodes. (repalce it by your custom search..)
P/S/
related to the gallery you can repalce the content by one more way, but its not intresting to give all answers just for 4 $ =)
Oleg Butuzov comments:
Please minus my P/S/.
Denzel Chia answers:
Hi,
Use the following str_replace with the do_shortcode function, before echoing out.
<?php
$gallery = do_shortcode('[gallery id="123"]');
$process_gallery = str_replace( 'a href' , 'a rel="lightbox" href' , $gallery );
echo $process_gallery;
?>
Hope it helps!
Thanks.
Denzel
Denzel Chia comments:
Hi,
Remember to replace with a valid gallery id!
Whereby id is the post id of your gallery.
Thanks.
Andreu Llos comments:
Nice and fast solution. Thank you all!
Denzel Chia comments:
Thanks! Can you please award the price money?
Rashad Aliyev answers:
Open your site in Internet Explorer and see error details if it's have..
Andreu Llos comments:
There is no error. Simply the plugin function is not executed with the filter I've tried for the do_shortcode function.
I need to execute the plugin function in the do_shortcode function in the same way it is executing in the_content function.