it-swarm.com.de

Anleitung mit The Loop for CMS

Vielleicht gehe ich das falsch an, aber das ist mein Szenario ... Ich möchte WordPress lieber als CMS als als Blogging-Plattform verwenden. Ich habe eine Website, die zwischen 25 und 50 Seiten umfasst und keine Posts enthält.

Ich versuche, ein eigenes Thema zu entwickeln, das ziemlich einfach sein sollte, aber ich bin ein wenig verwirrt über die Verwendung der Loop-Funktionen.

Ich verstehe das:

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

wird für eine Seite verwendet, auf der x Beiträge abgerufen werden. In meinem Szenario möchte ich jedoch nur den Inhalt einer Seite und nicht x Beiträge abrufen. Muss ich benutzerdefinierte SQL-Abfragen erstellen?

Alle Beispiele, auf die ich stoße, verwenden The Loop für Posts. Wenn ich nur statische Seiten verwende, muss ich dann überhaupt The Loop verwenden? Kann ich einfach die eindeutige URL verwenden, um eine Seite aus der Beitragsspalte der MySQL-Datenbank zu ziehen?

Ich hoffe das macht Sinn.

2
markmilly

Streng genommen müssen Sie keine Schleife in einer Seitenvorlage verwenden, aber es tut nicht weh, der Inhalt der Seite wird weiterhin geladen, die Schleife wird einfach nur einmal ausgeführt, da es nur einen Beitrag/eine Seite gibt. Viele Themen enthalten eine Schleife in Seitenvorlagen, ich denke, für einige Kompatibilitätsprobleme.

Wenn Sie Ihre Seitenvorlage von Grund auf neu erstellen, müssen Sie ihr keine Schleife hinzufügen. Sie haben Recht, WordPress erhält den richtigen Inhalt aus der URL, aber Sie müssen die Funktion the_post () noch ausführen, bevor Sie sie verwenden können Vorlagen-Tags wie the_title (), the_content () usw. Legen Sie the_post () einfach oben in die Vorlage.

Hoffe, es macht Sinn für Sie, zögern Sie nicht zu fragen, ob Sie weitere Erläuterungen benötigen.

2
Gioia Fueter

INFORMATIONSINHALT

Seiten werden wie Posts in der Datenbank als post_types gespeichert, der große Unterschied hier ist, dass Seiten außerhalb der normalen zeitbasierten Auflistung leben. Überprüfen Sie, was der Kodex sagt

Was Seiten sind:

  • Seiten sind für Inhalte gedacht, die weniger zeitabhängig sind als Beiträge.
  • Seiten können in Seiten und Unterseiten organisiert werden.
  • Seiten können verschiedene Seitenvorlagen verwenden, einschließlich Vorlagendateien, Vorlagen-Tags und anderem PHP Code.
  • Seiten verfügen möglicherweise über eine komplexere Reihe von leicht verfügbaren Anzeigeeinstellungen, wenn anspruchsvolle Designs mit umfangreichen Anpassungen verwendet werden.
  • Im Wesentlichen beziehen sich die Seiten auf Nicht-Blog-Inhalte. Es ist möglich, alle oder die meisten Posts aus einer WordPress-Installation zu entfernen und so eine Standard-Nicht-Blog-Website zu erstellen.

Was Seiten nicht sind:

  • Seiten sind weder Beiträge noch Auszüge aus größeren fiktiven Werken. Sie wechseln nicht durch die Hauptseite Ihres Blogs. WordPress-Plugins stehen zur Verfügung, um die Standardeinstellungen bei Bedarf zu ändern.
  • Seiten können nicht mit Kategorien verknüpft und keine Tags zugewiesen werden. Die Organisationsstruktur für Pages basiert nur auf ihren hierarchischen Beziehungen und nicht auf Tags oder Kategorien.
  • Seiten sind keine Dateien. Sie werden in Ihrer Datenbank gespeichert, genau wie Beiträge. Obwohl Sie Template-Tags und PHP-Code in eine Seitenvorlagendatei einfügen können, können Sie diese nicht ohne ein WordPress-Plugin wie Exec-PHP, das den Code-Filterprozess überschreibt, in den Seiten- oder Post-Inhalt einfügen.
  • Seiten sind nicht im Feed Ihrer Site enthalten.
  • Seiten und Posts können auf unterschiedliche Weise von Menschen oder Suchmaschinen beachtet werden.
  • Seiten (oder ein bestimmter Beitrag) können auf Wunsch als statische Startseite mit einem separaten Seiten-Set für die neuesten Blog-Beiträge, in der Regel mit dem Namen "Blog", festgelegt werden.

Seiten werden hauptsächlich für nicht-bloggende Zwecke verwendet und werden Ihren Bedürfnissen perfekt entsprechen. Sie können sich ansehen, wie Sie Seitenvorlagen im Codex erstellen.

ECHTE FRAGE

Um auf Ihre Frage zu kommen, werden alle auf einer Seite eingegebenen Informationen in der Datenbank gespeichert, genau wie Beiträge. Im Gegensatz zu Beiträgen, die als post_typepost gespeichert sind, werden Seiten jedoch als post_typepage gespeichert. Um diese Informationen abzurufen und anzuzeigen, müssen Sie eine Abfrage an die Datenbank senden, um diese Informationen aufzurufen.

Hier erfahren Sie, wie die Hauptabfrage ermittelt, welche Informationen beim Laden einer Seite zurückgegeben werden sollen. Entnommen aus Abfrageübersicht

In den folgenden Schritten entscheidet WordPress, welche Beiträge oder Seiten auf einer Seite angezeigt werden sollen, und zeigt sie an:

  • Wenn ein Besucher zum ersten Mal auf eine Seite in Ihrem Blog klickt oder eine URL für diese Seite eingibt, führt WordPress zunächst einige Kerndateien aus (wp-config.php, wp-settings.php usw.) Einzelheiten zur Ladereihenfolge der Dateien finden Sie in index.php. Folgen Sie der Dateikette, da jede PHP -Datei zusätzliche PHP -Dateien enthält/erfordert (oder lesen Sie diesen hervorragenden Beitrag bei humanshell.net) )
  • WordPress lädt und initialisiert alle Plugins, die Sie aktiviert haben (ruft die Plugin-Init-Aktionen auf).
  • WordPress lädt die "Textdomain" für die Internationalisierung und die Datei functions.php aus dem aktuell aktiven Theme.
  • WordPress führt die Funktion wp () aus (in wp-includes/functions.php), die $ wp-> main () aufruft ($ wp ist ein Objekt der Klasse WP, das in wp-includes/class-wp.php definiert ist) ). Dies weist WordPress an: -Parsen Sie die URL mit WP-> parse_request () in eine Abfragespezifikation - mehr dazu weiter unten.
  • Setzen Sie alle is_-Variablen, die von Conditional Tags verwendet werden, mit $ wp_query-> parse_query () ($ wp_query ist ein Objekt der Klasse WP_Query, das in wp-includes/query.php definiert ist). Beachten Sie, dass WP_Query-> parse_query in diesem Fall trotz des Funktionsnamens kein Parsing für uns durchführt, da dies zuvor von WP-> parse_request () durchgeführt wurde.
  • Konvertieren Sie die Abfragespezifikation in eine MySQL-Datenbankabfrage und führen Sie die Datenbankabfrage aus, um die Liste der Beiträge in der Funktion WP_Query-> get_posts () abzurufen. Speichern Sie die Posts in dem $ wp_query-Objekt, das in der WordPress-Schleife verwendet werden soll.
  • 404-Fehler behandeln.
  • Senden Sie die HTTP-Header des Blogs.
  • Richten Sie einige Variablen für die WordPress-Schleife ein.
  • WordPress lädt Ihre Vorlage, findet heraus, welche Vorlagendatei gemäß der Vorlagenhierarchie verwendet werden soll, und führt diese Datei aus (im Grunde genommen tun Sie, was Ihre Vorlagendatei verlangt). Oder WordPress könnte stattdessen eine der Feed-Dateien (wie wp-rss2.php) ausführen. Im Allgemeinen führt die Vorlage oder Feed-Datei die WordPress-Schleife aus, um Blog-Posts oder eine statische Seite zu drucken.
  • Die Vorlage oder Feed-Datei druckt wahrscheinlich auch Permalinks zu einigen Archiven, Kategorien oder Posts mit integrierten WordPress-Funktionen aus.

Ich verstehe das:

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

wird für eine Seite verwendet, auf der x Beiträge abgerufen werden. In meinem Szenario möchte ich jedoch nur den Inhalt einer Seite und nicht x Beiträge abrufen

Die Antwort auf diese Frage ist also, dass die Schleife nur die Informationen/Daten der Hauptabfrage ausgibt. Es ist die Hauptabfrage, die die Daten aus der Datenbank abruft, und wie bereits erwähnt, ruft die Hauptabfrage nur die Informationen nach URL und Beitragstyp ab

Muss ich benutzerdefinierte SQL-Abfragen erstellen?

Nein, die Hauptabfrage hat das schon getan. Sie können einfach the_post() verwenden, um diese Informationen aus der Hauptabfrage () abzurufen. Wenn Sie benutzerdefinierte Abfragen durchführen müssen, verwenden Sie stattdessen WP_Query . Verwenden Sie niemals Ihre eigenen SQL-Abfragen

Wenn ich nur statische Seiten verwende, muss ich dann überhaupt The Loop verwenden?

Es ist nicht notwendig, Sie können einfach the_post() verwenden, um Ihre Informationen anzuzeigen. Es ist jedoch ratsam, die Schleife zu verwenden, da have_posts() das Schleifenende auslöst, wenn die Schleife das Ende erreicht.

Ich hoffe, das erklärt so viele Probleme, die Sie haben könnten. Wenn ich Ihnen das überlassen kann, versuchen Sie niemals, das Rad neu zu erfinden, aber das bedeutet nicht, dass Sie das Design nicht verbessern können, wenn dieser Tag kommt. Halten Sie sich aber vorerst an die Grundlagen und verwenden Sie fast immer die Standardschleife.

1
Pieter Goosen