Für Menschen · Seien Sie begeistert und Sie werden begeistern !
Robert sucht ein Plugin, dass nach einem gewissen Zeitintervall die Funktion der Trackbacks/Pingbacks deaktiviert.
gibt es ein WordPress-Plugin, das explizit Trackbacks auf Artikel die älter als X Tage sind unterbindet, also keine Moderation, gleich abweisen?
Eine schnelle und schöne Lösung stelle ich hier mal vor, wurde auch getestet und läuft bis unter WordPress 2.1.2 . Dazu habe ich einfach das Plugin Auto-Close Comments erweitert, denn eigentlich ändert sich nur ein Feld in der SQL-Abfrage. Das Plugin ist nun so aufgebaut, dass Kommentare und Trackbacks nach einem gewissen Zeitraum deaktiviert werden - jeweils Variable $day.
<?php
/*
Plugin Name: Auto-Close Comments/ Trackbacks
Version: 0.3
Plugin URI: http://codex.wordpress.org/Plugins/Auto_shutoff_comments
Description: Autoclose comments and trackbacks after 21 days.
Author: Scott Hanson
Author URI: http://www.papascott.de/
*/
/* Add an index on comment_status/ping_status to wp_posts to speed this up. */
/* Little Modifikation by Frank Bueltge - http://bueltge.de */
function autoclose_comments() {
global $wpdb, $tableposts;
if (!isset($tableposts))
$tableposts = $wpdb->posts;
// Set $age to the age at which a post should become stale
$age = '21 DAY';
$date = $wpdb->get_var("
SELECT DATE_ADD(DATE_SUB(CURDATE(), INTERVAL $age), INTERVAL 1 DAY)
");
$wpdb->query("
UPDATE $tableposts
SET comment_status = 'closed'
WHERE comment_status = 'open'
AND post_status = 'publish'
AND post_date < '$date'
");
}
function autoclose_trackback() {
global $wpdb, $tableposts;
if (!isset($tableposts))
$tableposts = $wpdb->posts;
// Set $age to the age at which a post should become stale
$age = '21 DAY';
$date = $wpdb->get_var("
SELECT DATE_ADD(DATE_SUB(CURDATE(), INTERVAL $age), INTERVAL 1 DAY)
");
$wpdb->query("
UPDATE $tableposts
SET ping_status = 'closed'
WHERE comment_status = 'open'
AND post_status = 'publish'
AND post_date < '$date'
");
}
add_action('publish_post', 'autoclose_trackback', 7);
add_action('edit_post', 'autoclose_trackback', 7);
add_action('delete_post', 'autoclose_trackback', 7);
add_action('comment_post', 'autoclose_trackback', 7);
add_action('trackback_post', 'autoclose_trackback', 7);
add_action('pingback_post', 'autoclose_trackback', 7);
add_action('edit_comment', 'autoclose_trackback', 7);
add_action('delete_comment', 'autoclose_trackback', 7);
add_action('template_save', 'autoclose_trackback', 7);
add_action('publish_post', 'autoclose_comments', 7);
add_action('edit_post', 'autoclose_comments', 7);
add_action('delete_post', 'autoclose_comments', 7);
add_action('comment_post', 'autoclose_comments', 7);
add_action('trackback_post', 'autoclose_comments', 7);
add_action('pingback_post', 'autoclose_comments', 7);
add_action('edit_comment', 'autoclose_comments', 7);
add_action('delete_comment', 'autoclose_comments', 7);
add_action('template_save', 'autoclose_comments', 7);
?>
Ist die Arbeit nicht 1 Euro wert?
Jede Spende wird dankbar angenommen und ermöglicht das weitere Arbeiten an freier Software.
Möchtest du mehr oder anders spenden, so besuche meine Wunschliste.
Download als zip-Datei: timeout.zip - 1 KByte
bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.
Das Weblog wird angetrieben von WordPress und aktuell gibt es 980 Beiträge, 18722 Kommentare in 14 Kategorien und 464 Tags.
Das Blog wird liebevoll mit xHTML & CSS in Handarbeit gestaltet. Erstellt mit ♥ zum Befüllen und Erhalten.
Design und Code ist unter Copyright
© 2001 - 2012 bueltge.de [by:ltge.de]
28. März 2007 um 17:55
hier ist noch ein Plugin Comment Timeout
29. März 2007 um 17:26
Werden Kommentare und Trackbacks wieder aktiviert, wenn das Plugin deinstalliert wird?
29. März 2007 um 19:48
Nein, dazu müsste man eine Seite hinterlegen, wo man dies machen kann, bevor man das Plugin deaktiviert. Der hok, mit dem man deaktivieren kann ist nicht so zuverlässig. Derzeit muss man in der DB arbeiten.
11. Oktober 2007 um 20:29
Hm, vor einer Weile war das mal richtig schlimm mit SPAM. Ich habe daraufhin mehrere Plugins drauf angesetzt, neben "Math Comment Spam Protection" auch das hier beschriebene. Alle Einträge werden nach einer Weile zuverlässig abgedichtet. Hab zur Zeit keinen Ärger mehr mit SPAM. Daher bin ich inzwischen wieder der Meinung, die Einträge auf zu halten. Allerdings habe ich keine Lust, sämtliche Einträge einzeln in der Administration zur Diskussion zu öffnen. Das müßte sich doch eigentlich auch mit diesem Plugin wieder rückgängig machen lassen. Also Laie stelle ich mir das einfach vor. Brauche doch bloß die Befehle "open" und "closed" im Code entsprechend tauschen
oder?
11. Oktober 2007 um 23:06
@ Thomas: Ich habe das mal direkt in phpMyAdmin gemacht:
UPDATE `wp_posts` SET `comment_status` = 'open', `ping_status` = 'open';Damit gebe ich Kommentare, Track- und Pingbacks für alle Beiträge wieder frei.
Gruß,
Markus