Stylesheet laden, wenn die WordPress Galerie im Beitrag ist

Die Zeiten ändern sich.

Dieser Beitrag scheint älter als 14 Jahre zu sein – eine lange Zeit im Internet. Der Inhalt ist vielleicht veraltet.

Im Bezug auf die bessere Gallery ist es eigentlich nicht nötig das Stylesheet zu laden, wenn es keine Galerie gibt, insofern ist es also lohnend, wenn man im Vorfeld prüft, ob die Gallery im Beitrag genutzt wird und nur dann das Stylesheet laden. Dazu muss man die Beitrag parsen und das kann man auf zwei Arten tun.

Die klassische Lösung ist den Content in der Ausgabe zu parsen und den Shortcode zu suchen, klassisches PHP strstr. Je nach Ergebnis wird das Stylesheet geladen.
if ( strstr($post->post_content, '[gallery') ).
Dies kostet natürlich Zeit und Performance, was man eigentlich meiden möchte. Insofern ist es besser, wenn man den Beitrag im Vorfeld parsen kann. In diesem Zusammenhang gibt es einen Tread im Forum von WordPress, welches genau dazu eine erstklassige Lösung von WhiteShadow hat und diesen Ansatz kann man natürlich auch für das Laden des Stylesheet nutzen, wenn es um die Gallery geht.


// onyl css, when post has a gallery
function gallery_stylesheet($posts) {
	if ( empty($posts) )
		return $posts;

	$found = false;

	foreach ($posts as $post) {
		if ( stripos($post->post_content, '[gallery') )
			$found = true;
			break;
		}

	if ($found)
		wp_enqueue_style( 'gallery-stylesheet', get_bloginfo('stylesheet_directory') . '/gallery.css', false, false, 'screen' );

	return $posts;
}
add_action('the_posts', 'gallery_stylesheet');

Diesen Ansatz kann man natürlich auch nutzen für das Laden von Scripten,


// onyl js, when post has a gallery
function my_script($posts) {
	if ( empty($posts) )
		return $posts;

	$found = false;

	foreach ($posts as $post) {
		if ( stripos($post->post_content, '[gallery') )
			$found = true;
			break;
		}

	if ($found)
		wp_enqueue_script( 'my-script', get_bloginfo('stylesheet_directory') . '/script.js', false, false, true );

	return $posts;
}
add_action('the_posts', 'my_script');

Weitere Hinweise zum Einbinden von JavaScript- und CSS-Dateien gibt es in einem anderen Beitrag zum Thema.

Von Frank Bültge

bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.