Es gibt Situationen beim Erstellen einer WordPress-Website, in denen möchten wir Entscheidungen von der Verwendung bestimmter Shortcodes im Inhaltsbereich abhängig machen. Mitunter sollen ganze Module nur dann angezeigt werden, wenn bestimmte Shortcodes im Einsatz sind.

Um darauf adäquat zu reagieren, kann vor der Ausgabe des Inhalts abgefragt werden, ob der Shortcode in diesem Beitrag bzw. in der Seite verwendet wird.

Verwendung von Shortcodes prüfen

Zum Prüfen, ob ein Shortcode in einem bestimmten Zusammenhang Verwendung findet, dient die WordPress-Funktion has_shortcode. Diese erwartet jeweils Strings für die Parameter $content (der Inhalt) und $tag (der Shortcode). Mit einer if- oder if/else-Abfrage in der entsprechenden Template-Datei (single.php, page.php, home.php etc) lassen sich dann verschiedene Abhängigkeiten darstellen.

if (has_shortcode($post->post_content, 'beispiel')) {

   echo "Der Shortcode [beispiel] wurde in diesem Beitrag verwendet.";

} else { 

    echo "Der Shortcode [beispiel] wurde in diesem Beitrag nicht verwendet.";

}

Beispiel: Alternatives Layout, wenn der Shortcode für ein Inhaltsverzeichnis verwendet ist

Schauen wir uns ein Beispiel an. Wir haben das Layout mit CSS Grid gestaltet. Wenn im Inhalt der Shortcode inhaltsverzeichnis verwendet wurde, soll die CSS-Klasse .has-sidebar auf den Artikel angewendet werden, damit das Inhaltsverzeichnis in einer Seitenleiste angezeigt werden kann.

<?php
// Two columns if shortcode [inhaltsverzeichnis] is used
// Centered content without toc

if( is_single() && has_shortcode( $post->post_content, 'inhaltsverzeichnis') ) { ?>

    <article <?php post_class('content has-toc'); ?>>

<?php } else { ?>  

    <article <?php post_class('content is-centered'); ?>>

<?php } ?>



<?php 
// Display content 

if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

    <?php the_content();?>

<?php endwhile; else: ?>

    <?php echo "Keine Inhalte"; ?>

<?php endif; ?>

</article>

Auf unserer eigenen Website realisieren wir mit dieser Technik verschiedene Layouts für Blog-Posts und FAQ, je nachdem, ob ein Inhaltsverzeichnis vorhanden ist oder nicht.

Geschrieben von:

Konstantin Hanke

Benutzerbild

Konstantin arbeitet als Webentwickler bei kulturbanause. Seine Hauptaufgabe ist die technische Umsetzung von klaren, soliden und effizienten Webauftritten und Website-Komponenten. Darüber hinaus kümmert er sich um die Wartung, Optimierung und Weiterentwicklung von bestehenden Websites. Sein besonderes Interesse gilt der Idee von quelloffener, freier Software.

Jonas Hellwig

Benutzerbild

Jonas ist Gründer der Agentur kulturbanause und des kulturbanause Blogs. Er arbeitet an der Schnittstelle zwischen UX/UI Design, Frontend und Redaktion und hat zahlreiche Fachbücher und Video-Trainings veröffentlicht. Jonas Hellwig ist regelmäßig als Sprecher auf Fachveranstaltungen anzutreffen und unterstützt mit Seminaren und Workshops Agenturen und Unternehmen bei der Planung, der Gestaltung und der technischen Umsetzung von Web-Projekten.

Jonas Hellwig bei Xing

Feedback & Ergänzungen – Schreibe einen Kommentar

Kommentar zu dieser Seite

Wir freuen uns über Anregungen, Ergänzungen oder Hinweise zu Fehlern. Wir lesen jeden Eintrag, veröffentlichen aber nur, was den Inhalt sinnvoll ergänzt.

WordPress-Projekte mit kulturbanause

Wir wissen wovon wir reden. Wir setzen WordPress seit über 10 Jahren erfolgreich ein und realisieren maßgeschneiderte Websites auf Basis dieses großartigen CMS.

WordPress-Leistungsangebot →

Schulungen von kulturbanause

Wir bieten Seminare und Workshops zu den Themen Konzept, Design und Development. Immer up-to-date, praxisnah, kurzweilig und mit dem notwendigen Blick über den Tellerrand.

Schulung + Beratung