So fügen Sie Ihrem WordPress-Theme bedingte Logik hinzu

Veröffentlicht: 2021-02-25

Das Erstellen einer Website mit WordPress bietet eine große Flexibilität in Bezug auf Design und Funktionalität. Und wenn Sie tiefer in die Themenentwicklung einsteigen, werden Sie feststellen, dass es Zeiten gibt, in denen Sie eine bestimmte Seite, Kategorie oder einen bestimmten Beitragstyp auf etwas Besonderes ausrichten müssen. Hier kann die bedingte Logik Ihre Arbeit erheblich erleichtern.

Bedingte Logik ist ein mächtiges Feature von Programmiersprachen (in unserem Fall PHP). Im Wesentlichen können wir Code verwenden, um zu prüfen, ob eine bestimmte Bedingung existiert, und dann etwas Bestimmtes tun, wenn diese Bedingung erfüllt ist. Ein einfaches Beispiel hierfür wäre die Überprüfung, ob sich ein Benutzer gerade auf der Startseite unserer Website befindet. Unter Verwendung der bedingten Logik können wir uns in dieser Situation dafür entscheiden, einen Schieberegler oder andere spezielle Inhalte zu laden.

In Bezug auf WordPress gibt es eine Reihe nützlicher bedingter Tags, die in die Software integriert sind, mit denen wir alle möglichen Szenarien testen können. Sie sind gut dokumentiert und ermöglichen es Ihnen, ein höheres Maß an Funktionalität auf Ihre Website zu bringen.

Heute werfen wir einen Blick auf einige der häufiger verwendeten Bedingungs-Tags und wie Sie sie in Ihre eigene Website implementieren können.

Ein Hinweis zur Verwendung von bedingten Tags

Bedingte Tags sind Teile des PHP-Codes und sollten in das aktive Design Ihrer Website aufgenommen werden. Es gibt eine Reihe von Stellen, an denen Sie bedingte Logik innerhalb eines Themas verwenden können.

Wenn Sie dies noch nicht getan haben, ist es eine gute Idee, sich mit der WordPress-Vorlagenhierarchie vertraut zu machen, um zu erfahren, wie Designdateien funktionieren.

Und bevor Sie versuchen, neuen Code auf einer Live-Site zu implementieren, richten Sie am besten eine Entwicklungsumgebung (Staging) ein, um die Dinge zuerst zu testen. Denken Sie daran, dass ein falscher Schritt mit PHP Ihrer Website den gefürchteten „White Screen of Death“ geben kann. Seien Sie also beim Testen sehr vorsichtig, bevor Sie an einer Live-Site arbeiten.

ist Zuhause()

Dieser sorgt bei Entwicklern für große Verwirrung. Wenn Sie sich das Tag ansehen, würden Sie davon ausgehen, dass is_home() zum Überprüfen der Homepage Ihrer Website verwendet wird. Das ist nicht der Fall.

Es sucht tatsächlich nach der Seite, die als Ihre Posts-Seite zugewiesen ist, die unter Einstellungen > Lesen im WordPress-Dashboard eingestellt ist. Standardmäßig verwendet WordPress Ihre Startseite, um Beiträge aufzulisten – aber die meisten Websites neigen dazu, stattdessen eine statische Startseite zu verwenden.

Wenn Sie beispielsweise eine Seite mit dem Namen „Blog“ als Ihre Posts-Seite zugewiesen haben, sucht is_home() danach.

 <?php // If this the Posts page, display a message. if ( is_home() ): echo '<h2>Thanks for visiting our blog!</h2>'; endif; ?>

ist_vorderseite()

Umgekehrt sucht is_front_page() nach der Seite, die als Startseite Ihrer Website festgelegt ist – unabhängig davon, ob sie statisch ist oder nicht. Zugegeben, das ist nicht das Offensichtlichste auf der Welt, wenn Sie lernen, Ihre eigenen Themen zu erstellen. Es ist jedoch wichtig zu wissen, welches Tag verwendet werden soll.

Das Schöne an diesem speziellen Tag ist, dass Sie, selbst wenn Sie später eine andere Seite als Startseite zuweisen, immer noch auf die richtige Stelle abzielen. Es gibt explizitere Methoden zum Targeting von Seiten, aber diese Methode schützt Sie im Falle einer Änderung.

 <?php // If this is the home page, show a special message. if ( is_front_page() ) { ?> <h1>Welcome</h1> <?php // Otherwise, show the page title. } else { ?> <?php the_title( '<h1 class="entry-title">', '</h1>' ); ?> <?php } ?>

is_single() und is_page()

Jedes dieser Tags erfüllt eine Doppelfunktion. is_single() , ob es sich bei der aktuellen URL um einen Beitrag handelt. Es kann sich um einen Standard-Blogbeitrag, einen Anhang oder einen benutzerdefinierten Beitragstyp handeln.

Ebenso gibt is_page() true zurück, wenn die aktuelle URL eine Seite ist. Standardmäßig zielen beide Tags auf alle Inhalte ab, die unter das Dach einer Seite oder eines Beitrags fallen. Dies ist ein roter Faden unter vielen bedingten Tags.

 <?php // Target all posts. if ( is_single() ): echo 'You are on a single post.'; endif; // Target all pages. if ( is_page() ): echo 'This is a page'; endif; ?>

Sie können diese Tags aber auch nutzen, um auf einen bestimmten Beitrag oder eine bestimmte Seite abzuzielen, indem Sie eine ID oder einen Slug hinzufügen.

 <?php // Target About Us if ( is_page( 'about-us' ) ): ?> <a href="#"></a> <?php endif; ?>

Durch die Verwendung eines Arrays können Sie auf mehrere Inhalte abzielen.

 <?php // Target About Us and Contact Us pages. if ( is_page( array('about-us', 'contact-us') ) ): ?> <a href="#"></a> <?php endif; ?>

is_tax() und has_term()

Taxonomien spielen eine große Rolle bei der Organisation von Inhalten auf einer Website. Zwei der häufigsten sind Kategorien und Tags – die ihre eigenen bedingten Tags haben. Aber WordPress ermöglicht es uns auch, unsere eigenen Taxonomien zu erstellen.

Wenn Ihre Website beispielsweise Musikrezensionen enthält, haben Sie möglicherweise eine Taxonomie namens „Genre“. Von dort aus hätten Sie bestimmte Musikgenres innerhalb dieser Taxonomie auflisten können, z. B. „Rock“, „Hip-Hop“ und „Jazz“.

is_tax() zielt auf eine Taxonomie-Archivseite ab. Um bei unserem Musikrezensionsbeispiel zu bleiben, würde dieses Tag ausgelöst (in Kraft treten), wenn wir uns auf der Archivseite für jedes der spezifischen Genres befinden.

 <?php // Display a message on our Genre archive pages. if (is_tax('genre','rock','hip-hop','jazz') ): echo '<h2>This is a genre archive. Enjoy!</h2>'; endif; ?>

has_term() wird verwendet, um auf den aktuellen Beitrag abzuzielen, basierend darauf, zu welcher Taxonomie er gehört. Dies ist nützlich, wenn wir zum Beispiel eine spezielle Grafik für Posts in jedem Musikgenre auf unserer Website hinzufügen möchten.

 <?php // Show an image for the Rock genre. if (has_term('rock','genre') ): ?> <?php endif; ?>

is_page_template()

Sobald Sie mit der Vorlagenhierarchie eines Themas vertraut sind, möchten Sie möglicherweise Ihre eigenen benutzerdefinierten Seitenvorlagen erstellen. is_page_template() können Sie auf die aktuell verwendete Seitenvorlage abzielen (unabhängig davon, ob sie benutzerdefiniert ist oder nicht). Sie können entweder überprüfen, ob überhaupt eine Seitenvorlage verwendet wird, oder nach einer bestimmten suchen.

Sie müssen jedoch vorsichtig sein, wenn Sie nach einer bestimmten Seitenvorlage suchen. Da dieses Tag das Vorhandensein eines Dateinamens prüft, könnte die Bedingung nicht mehr funktionieren, wenn der Name dieser Vorlage geändert wird. Sie müssen Ihren Code aktualisieren, um Änderungen des Dateinamens widerzuspiegeln.

 <?php // Add a search form to the Services page template. if (is_page_template('services.php') ): ?> <?php get_search_form(); ?> <?php endif; ?>

Alle Bedingungen erfüllt

Obwohl dies nur eine kurze Einführung in die Verwendung von bedingter Logik war, macht es hoffentlich Appetit auf mehr.

Sobald Sie Bedingungen beherrschen, können Sie Ihre Website auf eine Weise anpassen, die sonst nahezu unmöglich wäre.

Sie können Ihnen eine feinkörnige Kontrolle über das Aussehen und Layout Ihres Themas geben und dennoch von allen Vorteilen der Verwendung eines CMS profitieren.