Mir scheint, beide bieten dem Endbenutzer die Möglichkeit, ein Thema zu ändern, ohne die Themendateien tatsächlich zu bearbeiten (über untergeordnete Themen).
Meine Frage ist, ob eine Methode der anderen vorgezogen wird.
Nehmen wir zum Beispiel ein Thema, an dem ich gerade arbeite. Ich versuche zu entscheiden, ob ich mit Schablonenteilen von Haken arbeiten soll.
<?php get_template_part('before_sitecontainer' ); ?>
<div id="sitecontainer" class="sitecontainer" <?php //closed in footer ?>>
<?php get_template_part( 'before_topcontainer' ); ?>
<div id="topcontainer ">
<?php get_template_part( 'before_topedge_navigation' ); ?>
<?php get_template_part( 'topedge_navigation' ); ?>
<?php get_template_part( 'before_site_header' ); ?>
<?php get_template_part( 'site_header' ); ?>
<?php get_template_part( 'before_second_navigation' ); ?>
<?php get_template_part( 'second_navigation' ); ?>
<?php get_template_part( 'after_second_navigation' ); ?>
</div><!-- end topcontainer div -->
<?php get_template_part( 'after_topcontainer' ); ?>
Mit dem obigen Befehl kann der Benutzer des Themas jeden Abschnitt des vorhandenen Codes ersetzen, indem er einfach eine Datei mit dem entsprechenden Namen in seinem untergeordneten Themenordner erstellt und neuen Code vor / nach jedem bereits vorhandenen Abschnitt nach derselben Methode hinzufügt - der Vorher / Nachher-Vorlage Teiledateien sind im übergeordneten Design überhaupt nicht vorhanden und dienen lediglich zum Einfügen von Code. Für diese Methode ist es nicht erforderlich, dass sie Hooks / Filter verstehen, um dies zu erreichen.
Das könnte ich natürlich auch mit Haken und Filtern erreichen.
Gibt es einen Vorteil bei der Verwendung von Hooks / Filtern? Wenn man bedenkt, dass das Zielpublikum, das dies verwenden wird, eindeutig kein Code- Kenner ist . Ich kann ihnen relativ grundlegende Anweisungen geben, die sie befolgen können, um die Template-Methode zu verwenden, aber sie werden mit ziemlicher Sicherheit den Teufel mit Haken verwechseln.
Oder gibt es Situationen, in denen einer im selben Thema besser wäre als der andere?
Ich würde sagen, dass der Hauptunterschied die Lesbarkeit ist. Wenn Sie mehrere gut benannte Vorlagenteile sehen, können Sie leicht nachvollziehen, was passiert. Wenn Sie nur einen Haken sehen, müssen Sie den Rest des Themas durchsuchen, um festzustellen, was mit dem Haken verbunden ist.
quelle
Es ist (relativ) einfach, die Funktion aus dem untergeordneten Design zu entfernen, aber viel schwieriger, unerwünschte übergeordnete Vorlagen zu ignorieren.
Grundsätzlich ist das Arbeiten mit Hooks eher auf der PHP-Seite und das Arbeiten mit Templates eher auf der HTML-Seite. Ich verwende das Hybrid-Eltern-Thema, das sehr Hook-orientiert ist. Es ist ein Glücksfall, bis Sie die Vorlage eines Elternteils loswerden müssen.
Für Benutzer, die nicht technisch versiert sind, ist auch keine sehr gute Option. Warum sollten sie sich überhaupt mit solchen Themeneinbauten anlegen müssen?
PS beachten Sie auch Leistungsprobleme. Sachen mit Hooks passieren im Speicher, Sachen mit Templates brauchen viele Festplatten-Lookups. Vor allem, wenn Sie so etwas wie in Ihrem Beispiel schreiben.
PPS ist nicht jedermanns Vorliebe ... aber anstatt das übergeordnete Thema von Grund auf neu zu schreiben, warum nicht das vorhandene übergeordnete Thema übernehmen und dem Benutzer ein einfaches untergeordnetes Thema bereitstellen?
quelle