Als uw hostingomgeving de ingebouwde taakplanner van WordPress beperkt, of als u feeds op een precies tijdstip wilt vernieuwen dat niet overeenkomt met de uurlijkse, tweemaal daagse of dagelijkse intervallen van de plugin, kunt u feedvernieuwingen in plaats daarvan aansturen vanuit een cronjob op serverniveau. Dit geeft u precieze controle over de timing en voorkomt dat u afhankelijk bent van bezoekersverkeer om de scheduler van WordPress te activeren.
Veelvoorkomende symptomen: feeds die vastzitten op oude gegevens, vernieuwingstijden die tussen bezoeken verschuiven, of hostingomgevingen die wp-cron uitschakelen.
Product Feed Pro en Product Feed Elite ondersteunen beide twee benaderingen: een WP-CLI-commando (aanbevolen) en een zelfstandig PHP-script voor servers zonder WP-CLI.
Voordat je begint
- Product Feed Pro of Product Feed Elite geïnstalleerd en actief
- Minstens één productfeed aangemaakt en geconfigureerd
- SSH- of cPanel-toegang tot uw server om cronjobs toe te voegen
- Uw feed-ID (zie Stap 1 in een van de onderstaande methoden)
- Versie 13.5.4 of hoger voor WP-CLI-ondersteuning
Methode 1: WP-CLI (aanbevolen)
WP-CLI is beschikbaar op de meeste beheerde WordPress-hosts. Het is de eenvoudigste en meest betrouwbare manier om een feedvernieuwing te activeren vanuit een server cronjob. Geen PHP-bestand om te beheren, geen WordPress bootstrapping vereist.
Stap 1: Vind uw feed-ID
- Ga naar Product Feed → Beheer Feeds in uw WordPress-admin.
- Klik op de feed die u wilt vernieuwen.
- Kijk in de adresbalk van uw browser. De feed-ID is de waarde van de
id-parameter — bijvoorbeeld,admin.php?page=adt-edit-feed&id=123betekent dat uw feed-ID123is.

Stap 2: Schakel het ingebouwde vernieuwingsinterval uit
Om te voorkomen dat de planner van de plug-in een dubbele vernieuwing uitvoert naast uw cronjob:
- Ga tijdens het bewerken van de feed naar het tabblad Algemeen.
- Stel Vernieuwingsinterval in op Geen vernieuwing.
- Klik op Wijzigingen opslaan.

Stap 3: Voeg de server-cronjob toe
Voeg op uw server een cron-invoer toe die wp adt-feed refresh uitvoert volgens uw gekozen schema. Vervang /pad-naar-wordpress door de daadwerkelijke rootmap van uw site en 123 door uw feed-ID:
0 2 * * * cd /path-to-wordpress && wp adt-feed refresh 123 >> /tmp/feed-refresh-123.log 2>&1
Dit voorbeeld wordt elke dag om 02:00 uur uitgevoerd. Pas de schema-expressie aan uw behoeften aan.
Om meerdere feeds in één cronjob te vernieuwen, lijst u hun ID's op, gescheiden door spaties:
0 2 * * * cd /path-to-wordpress && wp adt-feed refresh 123 456 789
Methode 2: PHP-script
Gebruik deze methode als uw server WP-CLI niet ondersteunt.
Stap 1: Vind uw feed-ID
Volg dezelfde stappen als in Methode 1, Stap 1 hierboven. Klik op uw feed om deze te bewerken en lees de id= waarde uit de URL.
Stap 2: Maak het PHP-script
Maak een nieuw bestand aan met de naam feed-refresh-123.php (vervang 123 door uw feed-ID) en sla het op in uw child theme-directory — bijvoorbeeld wp-content/themes/your-child-theme/feed-refresh-123.php.
Voeg deze code toe aan het bestand, waarbij u 123 vervangt door uw daadwerkelijke 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());
}
Stap 3: Schakel het ingebouwde vernieuwingsinterval uit
Volg dezelfde stappen als in Methode 1, Stap 2 hierboven — stel Vernieuwingsinterval in op Geen Vernieuwing in het tabblad Algemeen.
Stap 4: Voeg de server cronjob toe
Voeg de volgende cron-vermelding toe op uw server en vervang de paden door uw werkelijke waarden:
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
Dit wordt elke dag om 02:00 uur uitgevoerd. De uitvoer wordt naar een logbestand in dezelfde map geschreven, zodat u kunt controleren of het script is uitgevoerd en of het fouten heeft geproduceerd.
Om meerdere feeds onafhankelijk van elkaar uit te voeren, maakt u een apart PHP-bestand en cron-vermelding voor elke feed.
Probleemoplossing
Als het logboek uitvoer toont, maar de feed nog steeds niet wordt bijgewerkt, verifieer dan of de feed-ID correct is: open de feed in de WordPress-admin en bevestig dat de
id= waarde in de URL overeenkomt met de ID in uw script of WP-CLI-opdracht.wp binaire bestand is mogelijk niet aanwezig in het PATH van uw server. Neem contact op met uw host om te bevestigen dat WP-CLI beschikbaar is en vraag naar het volledige pad. Werk vervolgens uw cron-vermelding bij om het volledige pad te gebruiken (bijv. /usr/local/bin/wp adt-feed refresh 123).AdTribes\PFP\Helpers\Product_Feed_Helper is alleen beschikbaar nadat de plugin is geladen via wp-load.php. Zorg ervoor dat de require_once regel verwijst naar het juiste wp-load.php pad. Het pad moet overeenkomen met de root van uw WordPress-installatie — niet een submap.Veelgestelde vragen
Meer hulp nodig?
Als u Product Feed Elite gebruikt, open dan een supportticket, en ons team zal u helpen de cron-configuratie voor uw omgeving in te stellen.
Als je Product Feed Pro gebruikt, plaats je vraag dan in het WordPress.org supportforum.

