Wenn Ihre Hosting-Umgebung den integrierten Aufgabenplaner von WordPress drosselt oder wenn Sie möchten, dass Feeds zu einer bestimmten Zeit aktualisiert werden, die nicht mit den stündlichen, zweimal täglichen oder täglichen Intervallen des Plugins übereinstimmen, können Sie die Feed-Aktualisierungen stattdessen über einen Cron-Job auf Serverebene steuern. Dies gibt Ihnen die genaue Kontrolle über die Zeitplanung und vermeidet die Abhängigkeit vom Besucheraufkommen, um den Scheduler von WordPress auszulösen.
Häufige Symptome: Feeds hängen bei alten Daten, Aktualisierungszeiten, die zwischen Besuchen schwanken, oder Hosting-Umgebungen, die wp-cron deaktivieren.
Product Feed Pro und Product Feed Elite unterstützen beide zwei Ansätze: einen WP-CLI-Befehl (empfohlen) und ein eigenständiges PHP-Skript für Server ohne WP-CLI.
Bevor Sie beginnen
- Product Feed Pro oder Product Feed Elite installiert und aktiv
- Mindestens ein Produktdaten-Feed erstellt und konfiguriert
- SSH- oder cPanel-Zugriff auf Ihren Server, um Cron-Jobs hinzuzufügen
- Ihre Feed-ID (siehe Schritt 1 in einer der folgenden Methoden)
- Version 13.5.4 oder neuer für WP-CLI-Unterstützung
Methode 1: WP-CLI (empfohlen)
WP-CLI ist auf den meisten verwalteten WordPress-Hosts verfügbar. Es ist der einfachste und zuverlässigste Weg, eine Feed-Aktualisierung über einen Server-Cron-Job auszulösen. Kein PHP-File zu verwalten, kein WordPress-Bootstrapping erforderlich.
Schritt 1: Finden Sie Ihre Feed-ID
- Gehen Sie in Ihrem WordPress-Admin zu Produktdaten-Feed → Feeds verwalten.
- Klicken Sie auf den Feed, den Sie aktualisieren möchten.
- Schauen Sie in die Adressleiste Ihres Browsers. Die Feed-ID ist der Wert des Parameters
id– zum Beispiel bedeutetadmin.php?page=adt-edit-feed&id=123, dass Ihre Feed-ID123ist.

Schritt 2: Deaktivieren Sie das integrierte Aktualisierungsintervall
Um zu verhindern, dass der Scheduler des Plugins eine doppelte Aktualisierung neben Ihrem Cron-Job ausführt:
- Gehen Sie beim Bearbeiten des Feeds zum Tab Allgemein.
- Stellen Sie Aktualisierungsintervall auf Keine Aktualisierung.
- Klicken Sie auf Änderungen speichern.

Schritt 3: Fügen Sie den Server-Cron-Job hinzu
Fügen Sie auf Ihrem Server einen Cron-Eintrag hinzu, der wp adt-feed refresh zu Ihrer gewählten Zeit ausführt. Ersetzen Sie /path-to-wordpress durch das tatsächliche Stammverzeichnis Ihrer Website und 123 durch Ihre Feed-ID:
0 2 * * * cd /path-to-wordpress && wp adt-feed refresh 123 >> /tmp/feed-refresh-123.log 2>&1
Dieses Beispiel wird täglich um 2:00 Uhr ausgeführt. Passen Sie den Zeitplan an Ihre Bedürfnisse an.
Um mehrere Feeds in einem einzigen Cron-Job zu aktualisieren, listen Sie deren IDs durch Leerzeichen getrennt auf:
0 2 * * * cd /path-to-wordpress && wp adt-feed refresh 123 456 789
Methode 2: PHP-Skript
Verwenden Sie diese Methode, wenn Ihr Server WP-CLI nicht unterstützt.
Schritt 1: Finden Sie Ihre Feed-ID
Befolgen Sie die gleichen Schritte wie in Methode 1, Schritt 1 oben. Klicken Sie auf Ihren Feed, um ihn zu bearbeiten, und lesen Sie den Wert id= aus der URL.
Schritt 2: Erstellen Sie das PHP-Skript
Erstellen Sie eine neue Datei namens feed-refresh-123.php (ersetzen Sie 123 durch Ihre Feed-ID) und speichern Sie sie im Verzeichnis Ihres Child-Themes – zum Beispiel wp-content/themes/your-child-theme/feed-refresh-123.php.
Fügen Sie diesen Code in die Datei ein und ersetzen Sie 123 durch Ihre tatsächliche Feed-ID:
/**
* Product Feed Generation Cron Script
*/
// Start timing
$start_time = microtime(true);
// Simple logging function
function log_message($message) {
$timestamp = date('Y-m-d H:i:s');
$log_entry = "[$timestamp] $message";
error_log($log_entry);
echo $log_entry . "\n";
}
log_message("Feed generation started");
try {
// Load WordPress (3 levels up from wp-content/themes/your-child-theme/)
require_once(__DIR__ . '/../../../wp-load.php');
$feed_id = 123; // Change this to your actual feed ID
$feed = \AdTribes\PFP\Helpers\Product_Feed_Helper::get_product_feed($feed_id);
if ($feed) {
$feed->generate();
$execution_time = round(microtime(true) - $start_time, 2);
log_message("Feed ID $feed_id generated successfully in {$execution_time}s");
} else {
log_message("ERROR: Failed to get feed ID $feed_id");
}
} catch (Exception $e) {
log_message("ERROR: " . $e->getMessage());
}
Schritt 3: Deaktivieren Sie das integrierte Aktualisierungsintervall
Befolgen Sie die gleichen Schritte wie in Methode 1, Schritt 2 oben – stellen Sie Aktualisierungsintervall auf Keine Aktualisierung im Tab Allgemein ein.
Schritt 4: Fügen Sie den Server-Cron-Job hinzu
Fügen Sie den folgenden Cron-Eintrag auf Ihrem Server hinzu und ersetzen Sie die Pfade durch Ihre tatsächlichen Werte:
0 2 * * * php /path-to-wordpress/wp-content/themes/your-child-theme/feed-refresh-123.php >> /path-to-wordpress/wp-content/themes/your-child-theme/feed-refresh-123.log 2>&1
Dies läuft jeden Tag um 2:00 Uhr morgens. Die Ausgabe wird in eine Log-Datei im selben Verzeichnis geschrieben, sodass Sie überprüfen können, ob das Skript ausgeführt wurde und ob es Fehler erzeugt hat.
Um mehrere Feeds unabhängig voneinander auszuführen, erstellen Sie für jeden Feed eine separate PHP-Datei und einen separaten Cron-Eintrag.
Fehlerbehebung
Wenn das Log eine Ausgabe anzeigt, der Feed sich aber immer noch nicht aktualisiert, überprüfen Sie, ob die Feed-ID korrekt ist: Öffnen Sie den Feed im WordPress-Adminbereich und bestätigen Sie, dass der
id=-Wert in der URL mit der ID in Ihrem Skript oder WP-CLI-Befehl übereinstimmt.wp-Binärdatei ist möglicherweise nicht in der PATH Ihres Servers. Kontaktieren Sie Ihren Hoster, um zu bestätigen, dass WP-CLI verfügbar ist, und bitten Sie um den vollständigen Pfad. Aktualisieren Sie dann Ihren Cron-Eintrag, um den vollständigen Pfad zu verwenden (z. B. /usr/local/bin/wp adt-feed refresh 123).AdTribes\PFP\Helpers\Product_Feed_Helper ist erst verfügbar, nachdem das Plugin über wp-load.php geladen wurde. Stellen Sie sicher, dass die Zeile require_once auf den korrekten wp-load.php-Pfad verweist. Der Pfad muss mit dem Stammverzeichnis Ihrer WordPress-Installation übereinstimmen – nicht mit einem Unterverzeichnis.FAQ
Benötigen Sie weitere Hilfe?
Wenn Sie Product Feed Elite verwenden, eröffnen Sie ein Support-Ticket, und unser Team hilft Ihnen bei der Konfiguration des Cron-Setups für Ihre Umgebung.
Wenn Sie Product Feed Pro verwenden, stellen Sie Ihre Frage im WordPress.org Supportforum.

