Select Page

Einrichten eines echten Cronjobs für WordPress Multisite

p

Vor einiger Zeit haben wir bereits beschrieben, wie Sie einen echten cronjob für wordpress (Single-Side) einrichten können, um die Performance Ihres Internet-Auftritts zu erhöhen.

Dieser Beitrag bezieht sich auf eine “normale” WordPress Installation und nicht auf eine Multisite Installation.

Falls Sie den Beitrag “Einrichten eines echten Cronjobs für WordPress” noch nicht gelesen haben, so lesen Sie diesen bitte zuerst durch und befolgen ihn bis auf den letzten Abschnitt “Einrichten eines echten Cronjobs”.

Stattdessen gehen Sie bitte folgendermaßen vor…

Erstellen der benötigten Datei

Eine WordPress Multisite-Installation besteht im Prinzip auf getrennten Sites. D.h. jede Site hat eine eigene, von den anderen getrennte Datenbank (für die Techniker -> genauer gesagt gibt es nur eine Datenbank, aber die Tabellen sind durch die Namensgebung (prefixe) voneinander getrennt. Daraus folgt, dass die cronjob-Datei wp-con.php für jede Site getrennt aufgerufen werden muss. Leider liefert WordPress keine Datei mit, die diese Aufgabe für Sie erledigt. Aus diesem Grund müssen Sie eine solche Datei zuerst selbst erstellen. Erstellen Sie dazu in dem selben Ordner, in dem Sie die Datei wp-con.php finden eine Datei wp-cron-multisite.php mit folgendem Inhalt:

Aufrufen dieser Datei

Um den echten Cronjob nun letztendlich auszuführen, erstellen Sie noch auf Ihrem Web-Server  einen Cronjob, der diese Datei regelmäßig aufruft. Je nach “Größe” des Internet-Auftritts empfehlen wir Ihnen, diesen Intervall zwischen ca. 2 Stunden und 5 Minuten zu legen. Wie genau dieser Cronjob auf Ihrem Server eingerichtet werden muss ist auch dieses mal leider wieder von Provider zu Provider verscheiden und würde deshalb auch dieses mal wieder den Rahmen dieses Beitrags sprengen…

2 Comments

  1. juan

    see some improvements… some of then absolutely necessary

    get_results(“SELECT `domain`, `path` FROM ” . $wpdb->blogs .
    //” WHERE site_id = ” . $wpdb->site_id .
    ” WHERE spam = ‘0’
    AND deleted = ‘0’
    AND archived = ‘0’”
    );

    // print_r($sites);

    foreach($sites as $site){
    echo nl2br (“Object: “);
    print_r($site) . nl2br (“\n”);
    echo nl2br (“domain: “);
    echo $site->domain . nl2br (“\n”);
    }

    // Cronjob für alle Sites aufrufen

    foreach($sites as $site) {
    // Die URL der einzelnen Site bestimmen
    $url = ((is_ssl())? “https://” : “http://”) . $site->domain . ((!empty($site->path)) ? $site->path : ‘/’) . ‘wp-cron.php’;
    echo $url . nl2br (“\n”);
    // Die Übertragung vorbereiten
    $ch = curl_init($url);
    // Der Header wird nicht benötigt
    curl_setopt($ch, CURLOPT_HEADER, false);
    // Rückgabe nicht ausgeben
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    // Cronjob starten
    curl_exec($ch);
    // fertig…
    curl_close($ch);

    }

    Reply
    • Oliver Vogel

      Thank you. i added spam deleted and arcived to the queue

      Reply

Submit a Comment

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

s

Die Informationen auf dieser Seite wurden gründlich recherchiert. Dennoch können wir keine Haftung für Schäden oder Probleme bei Anwendung dieser Informationen übernehmen. Es handelt sich bei diesen Informationen keinesfalls um ein Rechts- oder Datenschutz-Beratung.

Share This