Schneller Tipp Beliebte Beiträge nach Kommentarzähler SQL-Abfrage in WordPress

Möglicherweise haben Sie bemerkt, dass die Tuts + -Seiten auf der Startseite einen Abschnitt enthalten, in dem wir die beliebtesten Posts des Monats auflisten, entsprechend der Anzahl der Kommentare. Obwohl es zahlreiche Plugins gibt, ist es immer am besten, den Code selbst zu schreiben, wenn Sie können. Zu viel Abstraktion ist nie eine gute Sache! Glücklicherweise werden Aufgaben wie diese zum Kinderspiel, sobald wir gelernt haben, wie die Datenbank von WordPress abgefragt wird!


Abonniere unsere YouTube-Seite, um alle Video-Tutorials anzusehen!

Sehen Sie sich dieses Video lieber auf Screenr an?


Die SQL-Abfrage

Um die Datenbank von WordPress abzufragen, können wir die $ wpdb-> get_results () Methode. Als Parameter übergeben wir einfach eine SQL-Abfrage. Angenommen, wir möchten in diesem Beispiel nur eine Liste der beliebtesten Beiträge in unserer Seitenleiste anzeigen. Wir können die folgende Abfrage verwenden:

 $ pop = $ wpdb-> get_results ("SELECT id, post_title, comment_count FROM $ wpdb-> Präfix posts WHERE post_type =" post "ORDER BY comment_count DESC LIMIT 10");

id, post_title, und Anzahl Kommentare unsere Spalten in der Datenbank.

Da Sie in WordPress ein benutzerdefiniertes Präfix für Ihre Datenbanktabellen festlegen können, müssen Sie dieses Präfix dynamisch abrufen, indem Sie verwenden wpdb-> Präfix Posts. In diesem Fall ergibt sich daraus "wp_posts". Als Nächstes müssen wir sicherstellen, dass wir nur Beiträge anzeigen und keine anderen Elemente wie Anhänge oder Seiten. Zum Schluss ordnen wir BY comment_count. Das ist der Punkt von all dem richtig? Zeigen Sie die am meisten kommentierten Beiträge an?

Nun, da unsere SQL-Abfrage ausgeführt wurde, können Sie einfach eine foreach -Anweisung verwenden, um die Ergebnisse zu filtern und auf der Seite anzuzeigen.

 $ pop = $ wpdb-> get_results ("SELECT id, post_title, comment_count FROM $ wpdb-> Präfix posts WHERE post_type =" post "ORDER BY comment_count DESC LIMIT 10"); foreach ($ pop als $ post):?> 
  • post_title; ?>
  • Beachten Sie, dass die Variable $ post Zugriff auf alle von uns abgerufenen Spalten hat. In unserem Fall hätten wir Zugriff auf:

    • $ post-> id: Die ID des Beitrags
    • $ post-> post_title: Der Titel des Beitrags
    • $ post-> comment_count: Die Anzahl der Kommentare für diesen bestimmten Beitrag.

    Wenn Sie den Permalink benötigen, können Sie entweder auch aus der "guid" -Spalte auswählen oder einfach die get_permalink ($ post-> id) Methode, und übergeben Sie die ID des Beitrags entsprechend.

    Sobald Sie gelernt haben, direkt mit der WordPress-Datenbank zu interagieren, steht Ihnen viel Kraft zur Verfügung. Dies ist nur die Spitze des Eisbergs!


    Eine letzte Sache

    Dieses Tutorial wurde erstellt, um zu veranschaulichen, wie gezielt WordPress-Tabellen in der Datenbank abgefragt werden. Um genau zu sein, können Sie ab WordPress 2.9 genau diesen Effekt erzielen, indem Sie query_posts () verwenden und übergeben orderby = 'comment_count'. Denken Sie jedoch daran, dass alles auf dasselbe hinausläuft: eine SQL-Abfrage an die Datenbank übergeben.

    Irgendwelche Fragen? Danke fürs Anschauen oder Lesen!