Support » Allgemeine Fragen » WordPress und MVC ( Verständnisfragen )

  • Bei der MVC Architektur ist es so, dass der Controller dynamischen Content an die View weiterleitet. Dieser Content ist in Variablen normalerweise schon verfügbar BEVOR die View gerendert wird.

    Bei WordPress (und auch beim Arbeiten mit vielen Plug-Ins) ist es oft der Fall, dass man in einem Theme-File (z.b. index.php) über Funktionen (oder Methoden 🙂 diesen Content anfordert.

    Dazu meine Fragen
    – Ist das so korrekt wie ich es beschreibe? 😀
    – Gibt es einen Weg meine Views klarer von Inhaltsabfragen zu trennen?

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)
  • Ja, ich versuche – wenn möglich – Actions und Filter zu verwenden. Wenn ich in einem Template zum Beispiel do_action verwende, kann ich Content auch in einer Funktion erzeugen, welchen ich bei der Ausführung dieser Aktion automatisch ausgeben lasse.

    In der index.php zum Veranschaulichen:

    <?php do_action( 'mein_hook' ); ?>

    und in der functions.php als Gegenstück:

    function meine_aktion() {
        echo 'Aktion "mein_hook"';
    }
    add_action( 'mein_hook', 'meine_aktion' );

    Zudem kann ich zu erzeugenden oder bereits erzeugten Content in meinen Funktionen/Methoden manipulieren, indem beispielsweise Hooks wie ‚the_content‘ filtere. Es gibt noch viele andere, aber hier noch ein kurzes Beispiel zu diesem Filter:

    function mein_content( $content ) {
        return $content . '<p>Have fun!</p>';
    }
    add_filter( 'the_content', 'mein_content' );

    Thread-Starter Wiger Toods

    (@wiger-toods)

    Danke für deine Beschreibung. Habe derweil noch etwas recherchiert und merke, dass WordPress also Event-Driven ist und nichts mit MVC zu tun hat.

    Vielleicht noch ganz hilfreich in dem Zusammenhang: https://tommcfarlin.com/wordpress-and-mvc/

    Thread-Starter Wiger Toods

    (@wiger-toods)

    super artikel, merci 🙂

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)
  • Das Thema „WordPress und MVC ( Verständnisfragen )“ ist für neue Antworten geschlossen.