WordPress: inserire gli script in base alla presenza degli shortcode

WordPress: inserire gli script in base alla presenza degli shortcode

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].

Torna su