Mit folgendem Snippet lassen sich Inhalte des Blogs im RSS-Feed später ausgeben. Später meint hierbei, dass ein Artikel, der um 13:30 auf dem Blog veröffentlicht wurde, zum Beispiel erst um 14:30 im Feed erscheint.
Dies mag auf den ersten Blick komisch anmuten, macht aber in diversen Szenarien Sinn. Zum Beispiel ist es denkbar, die Artikel erst mit 20 Minuten Verzögerung im Feed anzuzeigen, da man in den ersten Minuten meist noch 1-2 Fehler bemerkt und behebt, die bei sofortiger Veröffentlichung schon bereits im Feed ausgeliefert worden wären.
Ein zweites Szenario wäre zum Beispiel die Artikel erst einen Tag oder sogar eine Woche später im Feed anzuzeigen. So bekommen Feed-Leser zwar auch alle Inhalte, die Motivation direkt auf den Blog zu gehen (und somit mehr Kommentare abzugeben, etc.) steigt jedoch.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
function feed_inhalte_verzoegern($where) { global $wpdb; if (is_feed()) { $now = gmdate('Y-m-d H:i:s'); $wait = '1'; //Dauer $device = 'DAY'; //Zeiteinheit (in MYSQL-Syntax: MINUTE, HOUR, DAY, WEEK, MONTH, YEAR) $where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait "; } return $where; } add_filter('posts_where', 'feed_inhalte_verzoegern'); |
Das Snippet klinkt sich in die Erstellung der Datenbankabfrage zur Ermittlung der Feed-Inhalte ein und erweitert die Abfrage um eine weitere where-Klausel, die auf das Alter der Artikel/Inhalte (=Erstellungszeitpunkt der Artikel) eingeht.