[wp-hackers] checking if post has shortcode, before header is output?
Aaron D. Campbell
aaron at xavisys.com
Mon Oct 26 17:41:37 UTC 2009
That still doesn't fix the case where more than one query is ran on a
page, when someone does something like "$myQuery = new
WP_Query($params);" you'd process the main query, but you wouldn't get
any of the shortcodes in the custom query.
Chris Scott wrote:
> On Sat, Oct 24, 2009 at 9:02 PM, Aaron D. Campbell <aaron at xavisys.com> wrote:
>
>> That won't work for any custom queries (as well as a few other edge cases
>> like [[your_shortcode), but it'll work for most scenarios. You could also
>> have your shortcode handler add an action that hooks into wp_footer and uses
>> wp_print_scripts() to load your js file. You get the benefit of the js
>> loading in the footer as well as the functionality you wanted of only
>> loading your js when needed.
>>
>
> To prevent the edge cases you can use get_shortcode_regex() to know
> that you are checking for the shortcode the same way wp is. Something
> like this:
>
> $pattern = get_shortcode_regex();
> preg_match('/'.$pattern.'/s', $posts[0]->post_content, $matches);
> if (is_array($matches) && $matches[2] == 'YOURSHORTCODE') {
> //shortcode is being used
> }
>
More information about the wp-hackers
mailing list