WordPress & Webwork

WordPress: Artikelseite ansprechen

Wie man in WordPress über die Conditional-Tags die festgelegte Artikel- bzw. Blog-Seite ansprechen kann?

Seit der Version 1.5 hat WordPress die neben den Blog-Artikeln auch die Seiten (Pages) als zusätzliche Ausgabeform für Inhalte. In der Version 2.1 kam die Funktion dazu, dass man eine Page als Startseite und auch eine Page als Artikelseite festlegen kann.

WordPress: Artikelseite festlegen

Eine bestehende Page als Artikelseite festlegen

Auf dieser Page wird dann das Hauptarchiv ausgegeben, also die letzten xy Blogartikel. Die erstellte Page, die dann für die Ausgabe der Blogartikel zuständig ist sollte nur den Titel bzw. die Überschrift beinhalten. Der Rest, also der Inhalt, wird bei der Ausgabe ignoriert. Auch wenn man der Page evtl. ein Seiten-Template zuweist, so wird dieses ebenfalls ignoriert.

Diese Info ist vor allem für Leute wichtig, die im Kundenauftrag WordPress als "klassisches" CMS einsetzen möchten und wo man dann die Blog-Funktionalität auf eine "Unterseite" auslagern möchte. Es könnte nämlich sein, dass der Kunde sagt "die Sidebar auf der Blog-Unterseite sollte andere Inhalte haben". In so einem Fall wäre es wichtig zu wissen, wie man die Blog-Unterseiten ansprechen kann. Mittels eines Seiten-Templates geht es schon mal nicht.

Auch ein Conditional-Tag wie zum Beispiel is_page('journal'); tangiert die Artikelseite nicht. Und das hat auch einen Grund. Die Page, wo die Artikel ausgegeben werden dient lediglich als Namensgeber und Platzhalter. Für die eigentliche Ausgabe ist nach wie vor die Hauptdatei index.php zuständig.

Will man also die mit einem Conditional-Tag diese Artikelseite ansprechen, dann muss man auf is_home(); zurückgreifen oder die entsprechende Änderungen in der index.php direkt vornehmen.

Ich gehe davon aus, das dieser Artikel dem einen oder anderen einiges an Zeit und Kopfschmerzen ersparen wird, weil es in meinen Augen nicht ganz logisch ist. Logisch wäre das man die Artikelseite zum Beispiel über is_page(id); anspricht oder das die Entwickler hergehen und einen zusätzliches Conditional-Tag definieren … zum Beispiel is_blog_page();.

8 Reaktion(en)

  1. Jörg

    Woran ich gestern gescheitert bin: Wenn eine statische Seite als Startseite festgelegt ist, über welche URL erreiche ich dann die "Blog"-Seite?

    1. Perun

      Hallo Jörg,

      Wenn eine statische Seite als Startseite festgelegt ist, über welche URL erreiche ich dann die "Blog"-Seite?

      so lange du keine Artikelseite festgelegt hast, erreichst du das Hauptarchiv bzw. das "Blog" gar nicht.

  2. Jürgen

    Huhu,

    danke für den Hinweis, im ersten Moment dachte ich, es sei doch möglich per Seiten-Template zu steuern. Mit Custom Post Types funktionieren die Seiten-Templates immerhin 😉

    Um dein Beispiel mit den Widgets aufzugreifen, würdest du also direkt ins "Artikel Template", also die index.php die zu gewünschten Widgets setzen und nicht über das Backend steuern? Steige nit so durch das Beispiel bezüglich der unterschiedlichen Sidebars durch. Ich würde entweder zwei unterschiedliche Sidebars registrieren und entsprechend in den Templates setzen oder sehr bequem per Plugin "Display widgets" steuern – welches Widget wo zu sehen sein soll.

    Elegantere Möglichkeit?

    @Jörg
    Du legst einfach eine Seite als Artikelseite für deine Blog-Artikel fest z.B. "Mein Blog" als Seite anlegen, unter Einstellungen > Lesen als Artikelseite definieren und du erreichst deine Artikel halt unter "domain.tld/mein-blog" anstelle auf "Startseite" wie gewöhnlich.

    Beste Grüße
    Jürgen 😉

    1. Perun

      @Jürgen,

      Elegantere Möglichkeit?

      was die elegantere Möglichkeit ist, ist immer die Frage wer die Seite betreibt. Ich persönlich schaue so wenig wie möglich auf Plugins und Widgets zu setzen. Fände in meinem Beispiel es etwas übertrieben, lediglich eine Überschrift wäre anders, auf Widgets und zusätzliche Plugins zu setzen.

      Im Grunde genommen ging es mir mehr darum welches Conditional-Tag und welche Template-Datei ist für die Artikelseite verantwortlich.

  3. Jürgen

    Da geb ich dir absolut recht, so lange es sich in einem solchen Rahmen abspielt wäre ein Plugin in der Tat übertrieben 🙂 Wo man auf Plugins verzichten kann sollte man das wohl auch tun – womit die elegantere Lösung – je nach Fall auch klar ist 😉 Danke dir.

  4. Jörg

    Jetzt verstehe ich die Funktion (und damit auch diesen Post). Vielen Dank an Jürgen und Perun für die Hilfestellung.
    Ich war an der Stelle in den Einstellungen wohl etwas blind 😳

Die Kommentare in diesem Beitrag sind geschlossen.

WordPress-Schulungs­unter­lagen

Anleitung für Autoren und Redakteure
Schneller und unkomplizierter Einstieg in die redaktionelle Betreuung einer WordPress-Installation.

Handbuch für Administratoren
Schneller und unkomplizierter Einstieg in die technische Betreuung einer WordPress-Installation.

Anschauen