✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

Fügen Sie mithilfe von SQL einen nächsten zufälligen Beitrag in der WordPress-Seitenvorlage hinzu

6

Möglicherweise erhalten Sie häufig Ratschläge zur Verbesserung der SEO (Suchmaschinenoptimierung), indem Sie Links zu Ihren vorherigen Beiträgen hinzufügen, wenn Sie einen neuen Beitrag veröffentlichen. Dies hilft, den Datenverkehr zu erhöhen, und funktioniert ähnlich wie Plugins wie „Relative Posts”, nur einfacher.

Alle WordPress-Beiträge werden in einer Tabelle gespeichert, z. B. wp_posts, und in dieser Tabelle finden Sie post_title, post_name und diese Spalten sind ziemlich einfach. Abhängig von den Konfigurationen Ihrer Beitrags-URLs können Sie verschiedene Formate von Permalinks haben, die im Abschnitt Einstellungen – Permanlink konfiguriert werden können.

Der folgende PHP-Code kann in Ihre Seitenvorlage eingefügt werden, normalerweise single.php, das ist die Vorlage für einzelne Posts, oder page.php für die Seitenvorlage.

Ändere wp_posts entsprechend, da dies etwas variieren kann. Die SQL-Abfrage gibt einen zufälligen Beitrag zurück, bei dem die Seiten oder menu_items, Links usw. ausgeschlossen werden. Und der Status des Beitrags sollte veröffentlicht werden, der den Entwurf ausschließt. Das Limit 1 gibt nur 1 Beitrag zurück. Wenn Sie also einen früheren Beitrag wünschen, können Sie dies auf Limit 2 ändern .

Der Permalink auf meiner Website basiert auf dem post_name, der SEO-freundlicher ist. Sie können dies gut anpassen. Die SQL-Abfrage kann ebenfalls angepasst werden. Beispielsweise möchten Sie möglicherweise relevante Beiträge anstelle zufälliger Beiträge zurückgeben, indem Sie den titleWert gemäß dem aktuellen Beitragstitel abgleichen. Oder Sie möchten wirklich den vorherigen oder nächsten Beitrag sortiert nach Veröffentlichungsdatum zurückgeben, Sie möchten vielleicht das Feld „post_id” verwenden.

Kommentare

Yu – „Cool, zufällig ist wirklich nett. Stellen Sie auch besser sicher, dass der zufällige mit dem aktuellen Beitrag zusammenhängt. Aber das ist normalerweise kein großes Problem, solange der Blog für ein einzelnes Genre ist.

Auch die Reihenfolge von RAND() funktioniert gut für Tausende von Datensätzen. (normalerweise der Fall bei einem normalen Blog). Aber es wird Ihre Datenbank verbrennen, wenn Sie Millionen von Datensätzen in derselben Tabelle haben, die den Suchkriterien entsprechen."

Ja, die SQL- Reihenfolge durch rand() ist ein bisschen knifflig und langsam. Es muss alle Datensätze abrufen und nach dem Zufallsprinzip sortieren. Es wird als wenig effizient angesehen, wenn die Größe des Tisches mittel oder groß ist. Vielleicht möchten Sie den folgenden Trick verwenden, um schneller einen zufälligen Datensatz zu erhalten, indem Sie die rand()- Funktion in PHP verwenden.

// get total number of records $query = "select count(1) from `table`"; $result = mysql_query($query) or die(mysql_error()); $total = mysql_result($result, 0, 0); // get a random $r = rand(0, $total - 1); // return a number between 0 and $total - 1 inclusive using PHP $query = "select * from `table` limit $r, 1"; $result = mysql_query($query) or die(mysql_error());

Die SQL- Grenzwertursachen geben den Offset an, und der zweite Parameter gibt die Anzahl der abzurufenden Datensätze an.

Bessere Zufallsaufzeichnung

Entsprechend dem oben Gesagten ist die Sortierung per rand() extrem ineffizient, wenn Sie eine sehr große Tabelle haben, weil für die Sortierung (selbst wenn Sie nur ein Element wollen) die rand()- Funktion aufgerufen wird und das ist es, was wir nicht tun wollen. Wir können das Obige verbessern, indem wir zwei Abfragen verwenden, die erste gibt die Gesamtzahl der Posts zurück, und wir haben eine PHP-Zufallsfunktion und erhalten den Zufallsdatensatz mithilfe der Limit – Anweisung.

Aufnahmequelle: helloacm.com

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen