1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

DRY Code für Templates

Dieses Thema im Forum "Design" wurde erstellt von ricochet50, 24. Dezember 2016.

Schlagworte:
  1. ricochet50

    ricochet50 Member

    Registriert seit:
    2. Oktober 2016
    Beiträge:
    6
    Zustimmungen:
    0
    In einem Child Theme von twentyseventeen erstelle ich die Inhalte mehrerer Seiten (Team, Geschichte, ...) mit selbstgeschriebenen Templates (template-team.php, template-history.php, ...).
    Jedes dieser Templates beinhaltet um den eigentlichen, spezifischen HTML/PHP Code, einige Zeilen, die immer gleich sind:

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Besteht die Möglichkeit, diesen gemeinsamen Code irgendwohin auszulagern (z.B. in functions.php), damit er nur 1x vorkommt, und bei einem Seitenaufruf mit dem spezifischen HTML/PHP Code zusammengeführt wird?
    Ich dachte da z.B. an einen template_include Filter, bin mir aber nicht sicher, wie das gehen soll.

    Herzlichen Dank!
     
  2. helix

    helix Well-Known Member

    Registriert seit:
    28. Juli 2011
    Beiträge:
    1.808
    Zustimmungen:
    27
    Z.B. einfach mit get_template_part(); (also in den jeweiligen Seitentemplates, über get_template_part(); wird dann dieser gleichbleibende Teil aufgerufen.)

    Gruß
    helix
     
  3. ricochet50

    ricochet50 Member

    Registriert seit:
    2. Oktober 2016
    Beiträge:
    6
    Zustimmungen:
    0
    Also das hiesse in meinem Fall zwei neue Templates erstellen (öffnender und schliessender HTML Code), welche ich in meinen Seiten-Templates einbinde und dazwischen dann den spezifischen Code schreibe?

    <?php get_template_part('opening'); ?>

    HERE WOULD COME THE SPECIFIC TEMPLATE CODE

    <?php get_template_part('closing'); ?>

    Geht das nicht eleganter?
    Danke für den Hinweis, helix.
     
  4. helix

    helix Well-Known Member

    Registriert seit:
    28. Juli 2011
    Beiträge:
    1.808
    Zustimmungen:
    27
    Was ist elegant? (In diesem Zusammenhang)

    Ich hatte deine Anfrage „verkehrt herum“ verstanden, d.h. dass im Prinzip der Loop immer gleich ist.
    Was spricht dagegen, die gleichbleibenden Teile jeweils in die header.php bzw. footer.php mit reinzunehmen?

    Und dann kannst du auch ein Konstrukt wie „loop-page.php“ machen.
    Rufst du auch über get_template_part(); auf. Und „sagst“ deinem System dann, dass dieser Template-Part, wenn vorhanden, loop-pageslug.php heißt; wenn es keine Datei mit dem passenden Pageslug gibt, wird der Standard-Loop ausgegeben.

    Wäre hilfreich, du liest dich mal über get_template_part(); ein.
    https://developer.wordpress.org/reference/functions/get_template_part/

    Da stößt du dann z.B. auf https://developer.wordpress.org/reference/functions/locate_template/, da steht im Prinzip genau drin, was du brauchst … (naja, nicht gaaaanz, aber wer sich schon an eigene Seitentemplates wagt, dem sollte man doch ein bisschen Fähigkeit zu Übertragungsleistungen und eigener Recherche zutrauen?

    Gruß
    helix
     
  5. ricochet50

    ricochet50 Member

    Registriert seit:
    2. Oktober 2016
    Beiträge:
    6
    Zustimmungen:
    0
    Zu meiner Ehrrettung: Natürlich habe ich mich eingelesen, aber man wird ja noch fragen dürfen, ob es für ein konkretes Anliegen allenfalls noch eine bessere Variante gibt ;)

    Elegant im Sinne von, dass ich es so verstehe, dass im Normalfall über get_template_part() abgeschlossene Code-Bausteine an mehreren Orten eingebunden werden können.
    In meinem Fall besteht der Part 'opening' aus diesem (nicht abgeschlossenen) Teil:

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    und der schliessende Part 'closing' aus

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Es geht natürlich, aber ich find's nicht sonderlich schön.

    Gruss
    ricochet
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden