Saltar al contenido

Wordpress – Error no detectado: llamada a la función no definida wp_generate_attachment_metadata() @ wp-cron

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 o curl), 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_activatedasegú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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *