Zur Suche springen Zur Navigation springen Zum Hauptinhalt springen Zum Footer springen

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.

Schulungen von kulturbanause

Intensive Trainings mit hohem Praxisbezug.

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 kulturbanause Team

Benutzerbild

Beiträge bei denen das kulturbanause-Team als Autor angegeben ist, wurden von mehreren Personen in Zusammenarbeit geschrieben. Wir nutzen diesen Blog als öffentliches Archiv und um euch bei alltäglichen Problemen im Zusammenhang mit der Erstellung von Websites zu helfen. Neben diesem Blog bieten wir auch Trainings wie Schulungen, Bücher oder Videos an. Und natürlich unterstützen wir auch gerne im Rahmen unserer Agenturtätigkeit.

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.

Übersicht Schulungsthemen →