Statische Seite für statische Seiten mit bestimmter Elternseite?

  • Guten Abend,

    mein Titel hört sich blöd an, ich wusste leider nicht, wie ich das besser formulieren sollte und kann deshalb auch nicht recht nach meinem Problem suchen. Also, was ich gerne hätte:

    Ich möchte gerne eine statische Seite definieren, die als Elternseite für weitere Seite dienen soll. Auf dieser Elternseite hätte ich gerne automatisch alle Kindseiten verlinkt, mit Titel und vielleicht auch den ersten Textzeilen. Wenn also eine neue Kindseite entsteht, möchte ich die Elternseite nicht manuell nachbearbeiten müssen.

    Muss ich dafür ein spezielles Seitentemplate schreiben, oder gibt es so etwas schon?

    Danke für eure Hinweise und viele Grüße,

    fauxxami

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren


  • ich bevorzuge eigenes Seitentemplate

    hier der Part für die "Kinder" :-)

    und ich hoff ich habe mich nicht vertippt :-)

  • Ach, wenn das doch nur so einfach wäre: ich habe mir jetzt im WP Codex die Template-Hierarchie angeschaut. Nehmen wir an, der Slug der Elternseite lautet "foo", und dann müsste das neue Template doch unter dem Namen "page-foo.php" im Theme-Verzeichnis landen und mir dann im Backend neben den anderen beiden Templates, die mir mein Theme anbietet, auftauchen. Tut es aber nicht. Dann habe ich noch gesehen, dass es unterhalb des Theme-Ordners noch einen weiteren namens "page-templates" gibt; speichere ich das neue Template dort, tut sich leider auch nichts.

    Vermutlich liegt meine Verwirrung daran, dass ich die Hierarchie bei den statischen Seiten nicht komplett verstehe; insbesondere die Aufspaltung in "Default" und "Custom" nicht. Kann mir auch da jemand helfen?

    Danke und einen schönen Sonntag,

    fauxxami

  • Ah, bin einen halben Schritt weiter - im Template-File fehlte der Namens-Kommentar zu Beginn. Nun wird es mir angeboten, und ich kann es der Seite zuweisen. Beim Aufruf der Seite wird es dann aber offenbar nicht verwendet; ich sehe meine Startseite.

  • du erstellst eine Hauptseite => zb ich bin gut
    nimmst dafür das Template
    veröffentlichst diese

    dann erstellst eine Kindseite und veröffentlichst diese

    was passiert dann?


    was steht unter Dashboard => Einstellungen==> Lesen?

    steuert das Theme irgendwo "Seiten"?

    und schreibe in das Template irgendwo einen Text, damit du siehst, ob WP genau dieses Template nimmt


  • du erstellst eine Hauptseite => zb ich bin gut
    nimmst dafür das Template
    veröffentlichst diese

    Genau das habe ich gemacht. Und damit ich sehe, ob das Template benutzt wird, habe ich es zunächst fast völlig geleert und außer des Kommentars zu Beginn nur

    HTML
    <p>Hallo</p>

    hineingeschrieben. Statt "Hallo" sehe ich aber meine Startseite (mit den 10 aktuellsten Beiträgen, so wie in den Einstellungen festgelegt).


    dann erstellst eine Kindseite und veröffentlichst diese

    was passiert dann?

    So weit bin ich noch gar nicht; ich möchte es erst einmal schaffen, dass die Elternseite das richtige Template nimmt. Der Rest kommt dann.

    Auf jeden Fall danke für die Unterstützung!

    Grüße von fauxxami

  • das ist der falsche Weg, entweder siehst du die error 404 Seite oder "das was angezeigt wird", wenn es keinen Inhalt auf der Seite gibt

    speicher die page.php als page-kind.php ab,
    gib dem template einen Namen vor get_header
    schreib irgendwo "Kindseiten hinein"
    erstell eine Hauptseite und schreib irgendeinen Inhalt hinein
    veröffentliche

    nun musst du irgendwo Kindseiten lesen...

    dann füge den Loop von mir ein und gib an was du von den Kindseiten lesen magst...

    sonst siehst ja nichts :-)

    lade das Template wieder hoch und veröffentlich eine Kindseite

    anders kannst das nicht testen

  • Tja, offenbar bin ich zu dösig:

    speicher die page.php als page-kind.php ab,
    gib dem template einen Namen vor get_header
    schreib irgendwo "Kindseiten hinein"
    erstell eine Hauptseite und schreib irgendeinen Inhalt hinein
    veröffentliche

    nun musst du irgendwo Kindseiten lesen...

    Genau das habe ich gemacht und das Ganze jetzt zur Sicherheit noch einmal wiederholt. Die Elternseite heißt "Briefe" und ist unter http://www.meinedomain.de/briefe erreichbar. Sie hat das Template "Briefe" zugewiesen bekommen. Die Datei "page-briefe.php" im Template-Verzeichnis hat folgenden Inhalt:

    PHP
    <?php
    /* * Template Name: Briefe */
    get_header(); ?>
        <div id="primary" class="site-content">        <div id="content" role="main">
    
    
                           <p>Hier kommen später mal die Kindseiten hin!</p>
                <?php while ( have_posts() ) : the_post(); ?>                <?php get_template_part( 'content', 'page' ); ?>                <?php comments_template( '', true ); ?>            <?php endwhile; // end of the loop. ?>
            </div><!-- #content -->    </div><!-- #primary -->
    <?php get_sidebar(); ?><?php get_footer(); ?>


    Also eine exakte Kopie der "page.php" mit einer zusätzlichen Debug-Zeile. Aber ich sehe weder diese noch den Inhalt der Seite, sondern eben die Inhalte meiner Startseite.

  • du sollst das Template nicht nach dem page slug benennen, page-briefe.php nix gut
    besser page-extra-kinder-urcks.php
    irgendwas aber keinen SLug, weil du doch dem Template einen Namen gegeben hast :-)


    :-)

    und nach
    [COLOR=#000000] </div><!-- #content --> </div><!-- #primary -->
    schreibst du rein
    <h3>Briefe</h3>

    dann gugg bitte mal nach was unter

    Dashboard => Einstellungen ==> Lesen steht

    was wird da als Startseite genommen?

    was steht in der content-page.php drin?

    [/COLOR]

  • zeig es mir, von mir aus per PN

    ich vermute, da ist entweder was mit den Slugs oder es in nirgendwo noch Inhalt drin ...

  • du sollst das Template nicht nach dem page slug benennen, page-briefe.php nix gut
    besser page-extra-kinder-urcks.php
    irgendwas aber keinen SLug, weil du doch dem Template einen Namen gegeben hast :-)

    Ach so, ich sach' doch, dass ich zu dösig bin! :idea: Nun, da ich das verstanden habe, funktioniert es auch gleich ... hurra!

    [COLOR=#000000]
    dann gugg bitte mal nach was unter
    Dashboard => Einstellungen ==> Lesen steht
    was wird da als Startseite genommen?
    [/COLOR]

    [COLOR=#000000]

    Die Startseite zeigt "Deine letzten Beiträge".

    [/COLOR]

    [COLOR=#000000]
    was steht in der content-page.php drin?
    [/COLOR]

    Das ist die (unveränderte) Datei aus dem Twentytwelve-Theme.

    Aber es funktioniert ja jetzt, nur durch die Umbenennung des Seitentemplates. Monika, du bist jetzt meine persönliche Heldin und hast dir einen Orden verdient ... DANKE!

    Leider habe ich in den beiden kommenden Tagen kaum Zeit, aber spätestens Mittwoch mache ich mich dann an den vernünftigen Inhalt des Temples, so wie du das ja schon vorgearbeitet hast. Gut möglich, dass ich mich dann noch mal melde ...

    Einmal editiert, zuletzt von fauxxami (3. August 2014 um 23:50)

  • Bevor Du noch mehr Arbeit investierst sieh Dir doch mal http://wordpress.org/plugins/list-pages-shortcode/ an. Dieses Plugin liefert Dir einen Shortcode zum Auflisten aller Childs. Ganz unabhängig von Theme und Template. Vielleicht ist es ja genau das, was Du suchst. Wenn nicht, kannst Du immer noch selber weiter bastelt.

    Ich krieg' gerade 'nen Anfall - ja, das ist genau das, was ich suche! Danke für den Hinweis. Aber immerhin habe ich jetzt trotzdem eine Menge über Templates gelernt ...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!