Sidebar
ein-/ausblenden

WordPress - Trackbacks und Kommentare nach einem Zeitabschnitt automatisch sperren

Plugin für WordPress SEO

Anzeige

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);
?>

Download:

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
Download als zip-Datei: timeout.zip - 1 KByte

5 Kommentare zu „WordPress - Trackbacks und Kommentare nach einem Zeitabschnitt automatisch sperren“

  1. 1
    Kommentar von Susanne

    hier ist noch ein Plugin Comment Timeout

  2. 2
    Kommentar von Affenheimtheaterbesitzer

    Werden Kommentare und Trackbacks wieder aktiviert, wenn das Plugin deinstalliert wird?

  3. 3
    Kommentar von Frank Bültge

    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.

  4. 4
    Kommentar von Thomas

    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?

  5. 5
    Kommentar von Markus

    @ 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

Kommentar schreiben

Kommentarregeln: Bleib cool, kritisch ist in Ordnung, aber wenn du unhöflich bist, dann lösche ich deinen Kommentar. Bitte benutze deinen persönlichen Namen oder Initialen und nicht den Namen eines Unternehmens, dies würde als Spam gewertet und wird gelöscht. Der Zusammenhang zwischen Namen und URL sollte nicht offensichtlich auf Spam hindeuten! ♥ Ansonsten, vielen Dank für den Kommentar und viel Spaß mit meinem Blog.

Kommentar-Hilfe

händischer Spam:
Beachte die Kommentarregeln, jede Form von versuchtem Spam wird gelöscht. Warum und wieso steht in einem meiner Beiträge.

Bezug auf Textstellen:
Du kannst direkt bezug auf Textstellen im Beitrag nehmen. Dazu muss lediglich der Bereich im Artikel markiert werden; daraufhin erscheint ein Button, der den markierten Text in das Kommentarfeld übernimmt und als Zitat auszeichnet. Die Funktion ist nur bei aktivem JavaScript nutzbar.

xHTML:
Du kannst folgende Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <pre> <em> <strong> <strike> <ul> <ul> <li>

Achte darauf, wenn du Code im Kommentar hinterlegen willst, dann muss der Code maskiert sein. Dann wird er nicht interpretiert. Der Code muss mit Hilfe von HTML-Entities dargestellt werden, d.h. dass man z.B. < als &lt; und > als &gt; einfügt.

E-Mail-Benachrichtigung bei neuen Kommentaren ?
Wenn der Haken in der Checkbox gesetzt ist, dann wirst du über neue Kommentare vie E-Mail informiert. Der Versand erfolgt nur, wenn du die URL in der Bestätigungs-E-Mail genutzt hast oder schon Abonnent hier im Blog bist.

Kommentar erscheint nicht:
Alle Kommentare werden manuell geprüft, freigegeben und nach Möglichkeit beantwortet. Bitte um etwas Geduld und Nachsicht.

Identifikationsbilder (Avatare):
Auf Gravatar.com kann man sich mit seiner E-Mail-Adresse registrieren und ein Bild hochladen, dann erscheint dieses Gravatar hier und in vielen weiteren Blogs.

Spamschutz:
Das Kommentarformular ist mit einem Spamschutz ausgerüstet. Solltest du diesen Artikel ohne JavaScript besuchen und kommentieren wollen, so muss du die Frage beantworten und das jeweilige Wort in das Textfeld eingeben.