Si su entorno de alojamiento limita el programador de tareas integrado de WordPress, o si necesita que los feeds se actualicen a una hora precisa que los intervalos horarios, dos veces al día o diarios del plugin no cumplen, puede impulsar las actualizaciones de feeds desde un trabajo cron a nivel de servidor en su lugar. Esto le da un control exacto sobre el tiempo y evita depender del tráfico de visitantes para activar el programador de WordPress.
Síntomas comunes: feeds atascados en datos antiguos, tiempos de actualización que varían entre visitas, o entornos de alojamiento que deshabilitan wp-cron.
Product Feed Pro y Product Feed Elite admiten dos enfoques: un comando WP-CLI (recomendado) y un script PHP independiente para servidores sin WP-CLI.
Antes de empezar
- Instalado y activo Product Feed Pro o Product Feed Elite
- Al menos un feed de producto creado y configurado
- Acceso SSH o cPanel a tu servidor para añadir trabajos cron
- Tu ID de feed (ver Paso 1 en cualquiera de los métodos a continuación)
- Versión 13.5.4 o posterior para soporte WP-CLI
Método 1: WP-CLI (recomendado)
WP-CLI está disponible en la mayoría de los hosts de WordPress gestionados. Es la forma más sencilla y fiable de activar una actualización de feed desde un trabajo cron del servidor. No hay ningún archivo PHP que gestionar, ni se requiere la inicialización de WordPress.
Paso 1: Encuentra tu ID de feed
- Ve a Feed de productos → Gestionar feeds en tu administrador de WordPress.
- Haz clic en el feed que deseas actualizar.
- Mira la barra de direcciones del navegador. El ID del feed es el valor del parámetro
id; por ejemplo,admin.php?page=adt-edit-feed&id=123significa que tu ID de feed es123.

Paso 2: Deshabilita el intervalo de actualización integrado
Para evitar que el programador del plugin ejecute una actualización duplicada junto con tu trabajo cron:
- Mientras editas el feed, ve a la pestaña General.
- Establece Intervalo de actualización en Sin actualización.
- Haz clic en Guardar Cambios.

Paso 3: Añade el trabajo cron del servidor
En tu servidor, añade una entrada cron que ejecute wp adt-feed refresh en el horario que elijas. Reemplaza /ruta-a-wordpress con el directorio raíz real de tu sitio y 123 con tu ID de feed:
0 2 * * * cd /path-to-wordpress && wp adt-feed refresh 123 >> /tmp/feed-refresh-123.log 2>&1
Este ejemplo se ejecuta a las 2:00 AM todos los días. Ajusta la expresión de programación para que coincida con tus necesidades.
Para actualizar varios feeds en un solo trabajo cron, enumera sus IDs separados por espacios:
0 2 * * * cd /path-to-wordpress && wp adt-feed refresh 123 456 789
Método 2: Script PHP
Usa este método si tu servidor no admite WP-CLI.
Paso 1: Encuentra tu ID de feed
Siga los mismos pasos que en el Método 1, Paso 1 anterior. Haga clic en su feed para editarlo y lea el valor id= de la URL.
Paso 2: Crea el script PHP
Crea un nuevo archivo llamado feed-refresh-123.php (reemplaza 123 con el ID de tu feed) y guárdalo en el directorio de tu tema hijo; por ejemplo, wp-content/themes/tu-tema-hijo/feed-refresh-123.php.
Añade este código al archivo, reemplazando 123 con el ID real de tu feed:
/**
* 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());
}
Paso 3: Desactivar el intervalo de actualización integrado
Siga los mismos pasos que en el Método 1, Paso 2 anterior: establezca el Intervalo de actualización en Sin actualización en la pestaña General.
Paso 4: Añadir el trabajo cron del servidor
Añada la siguiente entrada cron en su servidor, reemplazando las rutas con sus valores reales:
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
Esto se ejecuta a las 2:00 AM todos los días. La salida se escribe en un archivo de registro en el mismo directorio, por lo que puede comprobar si el script se ejecutó y si produjo algún error.
Para ejecutar varios feeds de forma independiente, cree un archivo PHP y una entrada cron separados para cada feed.
Solución de problemas
Si el registro muestra salida pero el feed sigue sin actualizarse, verifique que el ID del feed sea correcto: abra el feed en el administrador de WordPress y confirme que el valor
id= en la URL coincide con el ID de su script o comando WP-CLI.wp no esté en el PATH de su servidor. Póngase en contacto con su host para confirmar que WP-CLI está disponible y solicite la ruta completa. Luego actualice su entrada cron para usar la ruta completa (por ejemplo, /usr/local/bin/wp adt-feed refresh 123).AdTribes\PFP\Helpers\Product_Feed_Helper solo está disponible después de que el plugin se haya cargado a través de wp-load.php. Asegúrese de que la línea require_once apunte a la ruta correcta de wp-load.php. La ruta debe coincidir con la raíz de su instalación de WordPress, no con un subdirectorio.Preguntas frecuentes
¿Necesitas más ayuda?
Si estás en Product Feed Elite, abre un ticket de soporte y nuestro equipo te ayudará a configurar la configuración cron para tu entorno.
Si estás en Product Feed Pro, publica tu pregunta en el foro de soporte de WordPress.org.

