Verificamos cada artículo en nuestro espacio con el objetivo de enseñarte siempre información certera y actual.
Solución:
Parte de lo que suele ser la funcionalidad del lado del administrador no se incluye como parte del programa de arranque “principal” de wordpress, los archivos que contienen funciones de manipulación de archivos cargados son uno de ellos y debe incluirlos explícitamente agregando
include_once( ABSPATH . 'wp-admin/includes/image.php' );
en tu call_import
función.
En la parte superior de su secuencia de comandos cronjob (por ejemplo: my-cron.php
), hacer esto:
if ( ! defined('ABSPATH') )
/** Set up WordPress environment */
require_once( dirname( __FILE__ ) . '/wp-load.php' );
Luego configure cron como este en su servidor:
5 * * * * wget -q -O - http://your-domain.com/my-cron.php
Nota: tal vez estaba intentando ejecutar cron como PHP Command Line (CLI), eso no funcionará. Debe ejecutar cron como solicitud HTTP (con
wget
ocurl
), como se muestra arriba.
Para obtener más información, lea este documento oficial de WordPress.
Actualizar:
Según el CÓDIGO recién agregado, puedo ver que este CÓDIGO es incorrecto:
register_activation_hook( __FILE__, 'OA_FeedManager_activated' );
function importpicture_activated()
if ( ! wp_next_scheduled( 'import_feed' ) )
wp_schedule_event( time(), 'hourly', 'import' );
add_action( 'import', 'call_import' );
function call_import()
// lots of code
lo comprobaste if ( ! wp_next_scheduled( 'import_feed' ) )
pero estás programando add_action( 'import', 'call_import' );
. Para que cron funcione correctamente, debe registrar la misma acción import
. Además, su gancho de activación es OA_FeedManager_activated
asegúrese de que se ejecuta importpicture_activated
función. Entonces el CÓDIGO debería ser como:
register_activation_hook( __FILE__, 'OA_FeedManager_activated' );
function OA_FeedManager_activated()
importpicture_activated();
function importpicture_activated()
if ( ! wp_next_scheduled( 'import' ) )
wp_schedule_event( time(), 'hourly', 'import' );
add_action( 'import', 'call_import' );
function call_import()
// lots of code
Para verificar si su cron está registrado correctamente, puede usar el complemento de control. Además, active la depuración de WP para ver qué error está generando su CÓDIGO.
Nota: Para función indefinida
wp_generate_attachment_metadata()
error verifique la respuesta de Mark.
Además, dado que ha programado el cron en el gancho de activación del complemento, debe desactivar y luego activar el complemento nuevamente si cambia la función del gancho de activación. Con el complemento Crontrol, asegúrese de que no haya un cron innecesario registrado en el backend.
Por último, compruebe si en wp-config.php
tú tienes define( 'DISABLE_WP_CRON', true );
. Debe eliminarlo (si está allí) o establecerlo en false
, si desea que WP cron se ejecute con una carga normal de WP. De lo contrario, deberá configurar cron con OS crontab (como se muestra al comienzo de mi respuesta).
Aquí tienes las reseñas y valoraciones
Recuerda dar difusión a este tutorial si lograste el éxito.