A partire da WordPress 3.6 è stata introdotta la funzione has_shortcode()
che ci permette di verificare se una data stringa
contiene uno specifico shortcode. Possiamo sfruttare questa nuova funzione per aggiungere i nostri script in modo selettivo.
Supponiamo di voler aggiugere il plugin jQuery Colorbox a tutte le gallerie di immagini di WordPress. Ovviamente dobbiamo
sapere se in un post è presente lo shortcode [gallery]
:
function add_my_scripts() {
if( !is_admin() ) {
global $post;
$post_content = $post->post_content;
if( has_shortcode( $post_content, 'gallery' ) ) {
wp_register_script( 'colorbox', get_template_directory_uri() . '/js/jquery.colorbox.js', '1.0', array( 'jquery' ), true );
wp_enqueue_script( 'colorbox' );
}
}
}
add_action( 'wp_enqueue_scripts', 'add_my_scripts' );
Abbiamo usato il contenuto dei post come stringa di riferimento per la funzione has_shortcode()
. In questo modo il nostro
plugin jQuery verrà inserito solo se i post contengono lo shortcode [gallery]
.