Vorsicht mit dem Broken Link Checker!

Oje, da hat mir ein Plugin, das ich eigentlich installiert hatte, um diesem Blog was Gutes zu tun, leider Chaos verursacht… Wer also von mir plötzlich massenhaft Mails bekommen hat, den bitte ich vielmals um Entschuldigung! Das Problem sollte jetzt behoben sein!

Was ist passiert?

Mit dem Broken Link Checker hatte ich mein Blog auf veraltete oder fehlerhafte Links durchsucht und mir dann die Arbeit gemacht, diese einzeln durchzusehen, zu entfernen oder zu reparieren. Offenbar hat bei jeder Reparatur das Plugin Post Notification, das ich für E-Mail-Abos nutze, den betreffenden Artikel nochmal verschickt – und das egal wie alt die Artikel sind. Es tut mir sehr, sehr leid! 🙁 Update: Offenbar haben auch andere WordPress-Blogger dasselbe Problem erlebt, wenn die Plugins  Broken Link Checker und Post Notification zusammen verwendet wurden. Vielleicht kann mein Schaden dann wenigstens andere klug machen, nicht in dieselbe Falle zu tappen…

Annette Schwindt
hat sich inzwischen als "schwindt-pr" verabschiedet und bloggt jetzt unter annetteschwindt.de.

9 Kommentare

  1. Hallo Frau Schwindt, trotz Entschuldigung kommen zur Zeit noch weitere E-Mails an…..es macht zum Wochenende keinen Spaß mehr.

    mit freundlichen Grüßen
    Marina Rußwurm

    1. Wie gesagt: es tut mir sehr leid, es war nicht beabsichtigt. Das Plugin ist jetzt entfernt. Sobald der Beitrag mit Titel ENTSCHULDIGUNG ankommt, sollte es vorbei sein.

  2. Hallo Annette,
    der Broken Link Checker schickt ja bestenfalls eine Mail an Dich, nicht an Deine Abonnenten.
    Welchen Dienst nutzt Du für die Benachrichtigung der Abonnenten? Irgendeinen RSS-to-Mail-Dienst?
    Viele Grüße
    Karl-Heinz

    1. Ja, das Post Notification Plugin und einige frühere Abonnenten gehen noch über Feedburner. Ist jetzt erst mal beides deaktiviert bis ich weiß, was das Problem verursacht.

      1. In der Kombination BLC+Feedburner, die ich auch nutze, kommt das Problem definitiv nicht vor. Ich denke, es liegt am Post Notification Plugin. Kann man da einstellen, dass Abonnenten bei Änderungen am Post Content informiert werden? Wenn ja, dann ist es das wohl.

  3. Servus,
    wir haben das Problem auch in unserem Blog.
    Um nun auch wieder die ‚Broken-Links‘ dirket im Plugin zu editieren, habe ich einen kurzen
    Workaround erstellt. Zwar nicht sehr schön aber es funktionert.

    Die ‚post_notification.php‘ (unter: wp-content/plugins/post-notification) im Editor oder Entwicklungsumgebung aufrufen.
    Nach der Methode function post_notification_add($post_ID) {} suchen, hier meine geänderte Funktion:

    /// Add a Post to the notificationlist
    function post_notification_add($post_ID) {
    global $wpdb;

    // WORKAROUND, da bei Änderungen im ‚Broken-Link-Checker‘, die Mails von ‚Post Notification‘ erneut gesendet werden
    // Hole URL
    $current_url = ($_SERVER[‚PHP_SELF‘]);
    // schaue ob „admin-ajax.php“ in URL enthalten ist –
    // ‚Broken-Link-Checker‘ werden Änderungen per Ajax gesendet
    $pos = strpos ($current_url, „admin-ajax.php“);
    // In der URL kommt kein „admin-ajax.php“ vor – alles OK
    if ($pos === false) {

    $post = get_post($post_ID);
    $t_posts = $wpdb->prefix . ‚post_notification_posts‘;
    $notify = $_POST[‚post_notification_notify‘];

    //The post came in some other way. Set to def.
    if($notify == “) $notify = ‚def‘;
    //Todo, userlevels

    $status = $wpdb->get_var(„SELECT notification_sent FROM $t_posts WHERE post_ID = ‚$post_ID'“);

    if($notify == ‚def‘ && !isset($status)){ //default is not to change
    if(get_option(‚db_version‘)post_status == ‚post‘) $notify = get_option(‚post_notification_send_default‘);
    if($post->post_status == ‚private‘) $notify = get_option(‚post_notification_send_default‘);
    if($post->post_status == ’static‘) $notify = get_option(‚post_notification_send_page‘);
    } else {
    if($post->post_type == ‚post‘) $notify = get_option(‚post_notification_send_default‘);
    if($post->post_type == ‚post‘
    && $post->post_status == ‚private‘) $notify = get_option(‚post_notification_send_default‘);
    if($post->post_type == ‚page‘) $notify = get_option(‚post_notification_send_page‘);
    }
    }
    if($notify == ‚yes‘){
    if(isset($status)) $wpdb->query(„UPDATE $t_posts SET notification_sent = 0 WHERE post_id = “ . $post_ID );
    else $wpdb->query(„INSERT INTO $t_posts (post_ID, notification_sent) VALUES (‚$post_ID‘, 0)“);
    } else if($notify == ’no‘){
    if($status != -1){ //Mails are sent – no reason to change this
    if(isset($status)) $wpdb->query(„UPDATE $t_posts SET notification_sent = -2 WHERE post_id = “ . $post_ID );
    else $wpdb->query(„INSERT INTO $t_posts (post_ID, notification_sent) VALUES (‚$post_ID‘, -2)“);
    }
    }
    // We should have an entry now, so lets write the time.
    $wpdb->query(„UPDATE $t_posts SET date_saved = ‚“ . post_notification_date2mysql() . „‚ WHERE post_id = “ . $post_ID );
    post_notification_set_next_send();

    } // if ($pos === false)
    }

    Wie gesagt nach „admin-ajax.php“ in der URL als Merkmal zu suchen ist jetzt nicht sehr elegant, aber funktioniert.

    Gruß
    b-man

Kommentare sind geschlossen.