Skip to content
🖥 So zeigen Sie Inhalte nur auf der WordPress-Startseite an

🖥 So zeigen Sie Inhalte nur auf der WordPress-Startseite an

Sie öffnen das WordPress-Admin-Panel und stellen fest: Der Werbebanner gehört auf die Startseite, aber auf einzelnen Beiträgen wirkt er aufdringlich. Oder ein Abonnement-Widget, das auf der Startseite E-Mails sammelt, nimmt im Artikeltext einfach nur Platz weg. Kommt Ihnen das bekannt vor?

WordPress bietet keinen eingebauten Schalter „Nur auf der Startseite anzeigen", aber die Aufgabe ist mit zwei Zeilen PHP einfach gelöst. Keine Plugins, keine Ratespielchen in der functions.php. Nachfolgend finden Sie drei bewährte Methoden, von Conditional Tags bis zu Theme-Templates, mit klaren Codebeispielen und einer Erläuterung des Unterschieds zwischen is_front_page() und is_home().

💡 Kurzüberblick:

  • Verwenden Sie is_front_page() in der header.php oder footer.php Ihres Themes
  • Verstehen Sie den Unterschied zwischen is_front_page und is_home
  • Um ganze Blöcke zu ersetzen, legen Sie separate Template-Dateien an
  • Keine Plugins erforderlich

Was sind WordPress Conditional Tags

Conditional Tags sind eingebaute WordPress-PHP-Funktionen, die Bedingungen prüfen und true oder false zurückgeben. Sie funktionieren wie eine Weggabelung: „Wenn die Seite die Startseite ist, zeige den Banner; andernfalls tue nichts."

Der WordPress-Core enthält Dutzende solcher Funktionen: is_single() für einzelne Beiträge, is_page() für Seiten, is_category() für Kategorien, is_404() für nicht existierende Adressen, is_search() für die Suchseite und weitere. Sie erlauben Ihnen, die Inhaltsausgabe präzise zu steuern, ohne jedes Template manuell bearbeiten zu müssen; die Prüfung erfolgt dynamisch beim Laden der Seite.

Für die Aufgabe „Nur Startseite" sind zwei Tags am wichtigsten: is_front_page() und is_home(). Sie sehen ähnlich aus, verhalten sich aber je nach Leseeinstellungen unterschiedlich, und Verwechslungen haben Einsteigern schon viele Stunden Fehlersuche gekostet.

Methode 1: is_front_page(), das primäre Werkzeug

is_front_page() gibt true zurück, wenn sich ein Besucher auf der Frontseite der Website befindet, also der Seite, die unter der Stamm-URL (https://yoursite.com/) aufgerufen wird. Dies ist Ihr Hauptwerkzeug für die allermeisten Aufgaben mit startseitenexklusiven Inhalten.

Grundlegende Syntax:

1<?php if ( is_front_page() ) : ?>
2 <div class="homepage-banner">
3 <p>Специальное предложение только для посетителей сайта!</p>
4 </div>
5<?php endif; ?>
6

Platzieren Sie diesen Code in der header.php (direkt nach dem öffnenden <body>-Tag) oder in der footer.php; der Banner erscheint ausschließlich auf der Startseite und fehlt auf allen anderen Seiten.

Beispiel für die Ausgabe eines benutzerdefinierten HTML-Blocks:

1<?php if ( is_front_page() ) : ?>
2 <section class="hero-promo">
3 <h2>Бесплатная консультация</h2>
4 <p>Оставьте заявку — и мы перезвоним в течение 15 минут.</p>
5 </section>
6<?php endif; ?>
7

Derselbe Ansatz funktioniert für Werbeskripte, benutzerdefinierte Styles oder einen separaten Shortcode: Umschließen Sie den gewünschten Block mit if ( is_front_page() ), und er wird nur dort geladen, wo er benötigt wird.

Wichtige Nuance: Die Funktion muss aufgerufen werden, nachdem WordPress die Hauptdatenbankabfrage abgeschlossen hat. Platzieren Sie sie nicht außerhalb von Hooks in der functions.php; vor dem Auslösen der wp-Action gibt sie false zurück. Sichere Platzierung: innerhalb von Theme-Dateien wie header.php, footer.php, sidebar.php und front-page.php. Alternativ nutzen Sie Hooks: wp, template_redirect oder wp_head.

Methode 2: is_home(), für die Blog-Seite

is_home() gibt true zurück, wenn sich ein Besucher auf der Seite befindet, die die neuesten Blogbeiträge anzeigt. Und hier liegt eine Falle, in die fast jeder Einsteiger tappt.

Der Code sieht ebenso einfach aus:

1<?php if ( is_home() ) : ?>
2 <p>Подпишитесь на нашу рассылку — новые статьи каждую неделю.</p>
3<?php endif; ?>

Der Unterschied liegt in den Einstellungen. Gehen Sie ins Admin-Panel: Einstellungen → Lesen → Ihre Startseite zeigt. Ist „Deine neuesten Beiträge" ausgewählt, dann funktionieren is_front_page() und is_home() identisch: Beide geben auf der Startseite true zurück. Ist jedoch „Eine statische Seite" ausgewählt, dann gilt:

  • is_front_page()true auf der statischen Seite, die Sie als Startseite festgelegt haben
  • is_home()true auf der Seite, die Sie für die Anzeige der Beiträge bestimmt haben (auch wenn sie physisch unter /blog/ liegt)

Anders ausgedrückt: is_home() ist an die Blog-Seite gebunden, nicht an die Frontseite der Website. Wenn Sie eine statische Landingpage betreiben und der Blog unter /blog/ liegt, dann gibt is_home() auf der Startseite (/) false zurück.

Is_front_page() vs is_home(): Vergleichstabelle

Szenario

Leseeinstellungen

is_front_page()

is_home()

Startseite = neueste Beiträge

„Deine neuesten Beiträge"

true

true

Startseite = statische Seite (Besucher auf /)

Statische Seite + separate Blogseite

true

false

Blogseite = /blog/ (Besucher auf /blog/)

Statische Seite + separate Blogseite

false

true

Jede andere Seite oder Beitrag

Beliebige Einstellungen

false

false

Die Regel ist einfach: Wenn Sie Inhalte strikt auf der Startseite benötigen, verwenden Sie is_front_page(). Wenn Sie Inhalte auf der Seite mit dem Beitragsfeed benötigen (unabhängig davon, ob es die Startseite ist), verwenden Sie is_home().

In der Praxis werden die meisten Aufgaben mit is_front_page() gelöst. is_home() ist dann nützlich, wenn der Blog auf einer separaten Seite liegt und Sie beispielsweise ein Widget „Beliebte Beiträge" genau dort, aber nicht auf der Landing-Startseite anzeigen möchten.

Methode 3: Separate Template-Dateien

Wenn Sie nicht nur eine oder zwei Zeilen, sondern einen ganzen strukturellen Block (eine Sidebar, einen Footer oder Header) ersetzen müssen, wird das Umschließen jedes Elements mit if unhandlich. WordPress unterstützt einen Mechanismus für spezifische Template-Dateien: Sie erstellen eine Datei für eine bestimmte Seite, und der Core greift automatisch darauf zu.

Schritt 1. Neue Datei erstellen. Legen Sie in Ihrem Theme-Ordner eine von drei Varianten an:

  • sidebar-home.php, eine Sidebar für die Startseite
  • footer-home.php, ein Footer für die Startseite
  • header-home.php, ein Header für die Startseite

Schritt 2. Mit Inhalt füllen. Platzieren Sie das HTML und PHP, das nur auf der Startseite erscheinen soll, in der Datei. Beispiel sidebar-home.php:

1<div class="homepage-sidebar">
2 <h3>О нашем проекте</h3>
3 <p>Мы помогаем малому бизнесу запускать сайты на WordPress с 2018 года.</p>
4
5 <h3>Подписка</h3>
6 <?php echo do_shortcode( '[newsletter_form]' ); ?>
7</div>
8

Schritt 3. Datei im Template aufrufen. Ersetzen Sie in front-page.php oder index.php (je nach Theme) den Standardaufruf:

1<?php get_sidebar( 'home' ); ?>
2<?php get_footer( 'home' ); ?>
3<?php get_header( 'home' ); ?>

WordPress nutzt das Argument 'home', um automatisch die Dateien sidebar-home.php, footer-home.php bzw. header-home.php einzubinden. Wird eine Datei nicht gefunden, greift es auf die Standarddatei sidebar.php zurück.

Wann diese Methode gerechtfertigt ist. Wählen Sie den Template-Ansatz, wenn:

  • Der gesamte Block sich ändert (nicht ein einzelner Button, sondern die ganze Sidebar-Struktur)
  • Das Theme bereits front-page.php verwendet und die Logik sich nicht vermischt
  • Sie die Website langfristig pflegen möchten und eine saubere Dateiorganisation wünschen

Für kleine Änderungen ist die Methode übertrieben; der Conditional Tag is_front_page() ist ausreichend.

Mögliche Fehler und wie Sie sie vermeiden

Aufruf vor der Query-Initialisierung. Das häufigste Problem: is_front_page() in der functions.php ohne Hook. Die Funktion gibt stillschweigend false zurück, und Sie nehmen an, der Code sei defekt. Lösung: Umschließen Sie die Prüfung immer mit einem wp- oder template_redirect-Hook:

1add_action( 'wp', 'my_homepage_content' );
2function my_homepage_content() {
3 if ( is_front_page() ) {
4 add_action( 'wp_head', 'my_homepage_banner' );
5 }
6}

Verwechslung mit den Leseeinstellungen. Wenn Sie die Website von einer statischen Startseite auf den Feed der neuesten Beiträge umgestellt und es vergessen haben, greift is_home() plötzlich dort, wo es nicht sollte. Prüfen Sie zuerst Einstellungen → Lesen.

Hartkodierung der Seiten-ID. Manche Entwickler prüfen if ( get_the_ID() == 5 ) anstelle von is_front_page(). Das ist fragil: Ändern Sie die Startseite in den Einstellungen, und alles geht kaputt. Verwenden Sie Conditional Tags; sie verfolgen die Einstellungen automatisch.

Das Thema WordPress Conditional Tags wird in diesem Video vertieft behandelt, von is_page() bis zu benutzerdefinierten Bedingungen für nicht standardisierte Templates. Wenn Sie regelmäßig mit Themes arbeiten, sparen Ihnen 15 Minuten Betrachtungszeit künftig Stunden der Fehlersuche.

⁉️🤔 Häufig gestellte Fragen

Was soll ich wählen: is_front_page() oder is_home()?

In den meisten Fällen is_front_page(). Es gibt true auf der Frontseite der Website zurück, unabhängig davon, ob es sich um eine statische Seite oder den Beitragsfeed handelt. Verwenden Sie is_home() nur, wenn Sie speziell die Blogseite benötigen (zum Beispiel /blog/), nicht die Startseite.

Können beide Tags gleichzeitig verwendet werden?

Ja, das Konstrukt if ( is_home() && ! is_front_page() ) gibt nur dann true zurück, wenn es sich um die Blogseite handelt und diese nicht die Startseite ist. Nützlich für Websites mit einer statischen Startseite und einem separaten Beitragsbereich.

Funktioniert is_front_page() mit Caching-Plugins?

Ja, aber mit einer Einschränkung. Conditional Tags greifen serverseitig vor der HTML-Auslieferung; Cache-Plugins (WP Rocket, W3 Total Cache) beeinflussen dies nicht. Bei ESI-Blöcken (Edge Side Includes) prüfen Sie jedoch, ob Ihr Cache-Plugin diese unterstützt.

Wie zeige ich unterschiedliche Inhalte auf der Startseite für eingeloggte und nicht eingeloggte Nutzer an?

Kombinieren Sie is_front_page() mit is_user_logged_in(). Für eingeloggte Nutzer eine persönliche Begrüßung; für Gäste einen Registrierungsaufruf. Der Code umfasst fünf Zeilen und kommt in die header.php:

1<?php if ( is_front_page() && is_user_logged_in() ) : ?>
2 <p>С возвращением! Вот ваши последние заказы.</p>
3<?php elseif ( is_front_page() ) : ?>
4 <p>Добро пожаловать! Зарегистрируйтесь для персональных скидок.</p>
5<?php endif; ?>

Benötigt ein Child-Theme eigene header-home.php-Dateien?

Wenn das Parent-Theme bereits header-home.php enthält, erbt das Child-Theme diese automatisch. Zum Überschreiben erstellen Sie eine gleichnamige Datei im Child-Theme-Ordner. WordPress sucht zuerst im Child-Theme und erst dann im Parent-Theme nach dem Template.

Was Sie 2026 verwenden sollten: einen Conditional Tag oder eine separate Datei?

Die Wahl hängt vom Umfang der Aufgabe ab. Merken Sie sich eine einfache Regel: Eine Codezeile oder ein HTML-Block, verwenden Sie is_front_page(). Ändert sich ein ganzer struktureller Block (Sidebar, Footer, Header) mit eigenem Markup und eigener Logik, erstellen Sie separate Template-Dateien.

In der Praxis werden die meisten Aufgaben mit startseitenexklusiven Inhalten mit zwei Zeilen eines Conditional Tags erledigt. Das ist schnell, erzeugt keine zusätzlichen Dateien im Theme und ist bei der Pflege der Website ein halbes Jahr später gut lesbar: Sie müssen nicht raten, warum Sie sidebar-home.php erstellt haben, weil Sie die explizite Prüfung direkt im Template sehen.

Probieren Sie es gleich aus: Öffnen Sie die header.php Ihres aktiven Themes, finden Sie die Stelle nach <body> und fügen Sie einen Testblock mit is_front_page() ein. Wenn alles funktioniert, haben Sie WordPress Conditional Tags in fünf Minuten gemeistert.