Categorías: Programación Web

Cómo usar funciones de WordPress para un cronjob

A veces nos interesa usar funciones de WordPress externamente para un cronjob, para alimentar otro sitio web, para un feed, para interactuar con alguna API o alguna idea loca similar.

Las funciones de WordPress están muy bien pensadas y depuradas para que sea muy sencillo tratar con el contenido de este CMS, según vamos avanzando en nuestros desarrollos basados en WordPress a veces surgen necesidades de usar sus funciones sin cargar el sitio completo, la más sencilla que se me ocurre es ejecutar un cronjob que interactúe con nuestro contenido. Un ejemplo práctico podría ser un cronjob que coja un post y publicarlo en Twitter a través de la API de Twitter cada 25 minutos.

¿Qué necesitamos de WordPress para esto? Pues bien, acceso a las funciones de wordpress y a nuestra base de datos, si no cargamos las plantillas mejor, más rendimiento -y además evitaremos que Analytics nos mida cosas extrañas…-. Para tener esto vamos a crear un archivo y cargar WordPress sin plantillas.

Cargando WordPress sin plantillas

Esto es extremadamente sencillo, veamos el código:

/*
* Si vamos a ejecutar tareas cron Apache no nos pasará las variables de servidor, las tenemos que forzar, * es sencillo.
*/
$_SERVER['HTTP_HOST'] = 'www.tuservidor.com';
$_SERVER['REQUEST_URI'] = '/';
/**
* Le decimos a WordPress que no vamos a utilizar el sistema de plantillas definiendo WP_USE_THEMES como falso.
*
* @var bool
*/
define('WP_USE_THEMES', false);

/** Ahora cargamos el entorno WordPress con las funciones pero sin plantilla */
require( dirname( __FILE__ ) . '/wp-blog-header.php' );

Como puedes ver, nos limitamos a cargar el archivo “wp-blog-header.php” que es el que hace el trabajo duro, previamente hemos definido que WP_USE_THEMES sea false, con esto evitamos que cargue el sistema de plantillas.

Si quieres evitar que la página devuelva un 404, sobre todo esto es importante si queremos indexar la página o va a estar a la vista de algún usuario, debes cargar los header correctos para suplir que WordPress devuelve un 404 cuando no sabe qué tipo de página es (post, página, etc…). Para ello añade esto a tu código:

header("HTTP/1.1 200 OK"); 
header("Status: 200 All rosy");

Una vez tenemos esto claro podemos empezar a trabajar con todas las funciones de WordPress fuera del entorno WordPress. Si te ha sido útil este artículo no dudes en compartirlo, si tienes alguna duda déjanos un comentario 😉

fruiz

Share
Publicado por
fruiz

Recent Posts

¿Sabías que tu web de WordPress carga 2 MB de CSS que no usa? Bienvenido a los page builders

Abre Chrome DevTools en cualquier web hecha con Elementor y mira la pestaña Coverage. Entre…

56 años atrás

Elementor en 2026: ¿page builder imprescindible o lastre de rendimiento?

Análisis equilibrado de Elementor en 2026: ecosistema masivo contra problemas de rendimiento, CSS inflado y…

56 años atrás

Build vs Buy: el informe de Retool 2026 explicado para no-techies

Retool ha publicado su informe Build vs Buy 2026 y los datos son reveladores: el…

56 años atrás

Microsoft dice que los business agents matarán al SaaS en 2030: ¿tiene razón?

Microsoft predice que los agentes de IA empresariales acabarán con el modelo SaaS tradicional antes…

56 años atrás

Por qué el shadow IT con IA es la mejor noticia para las pymes

El 60% de las empresas ya construyen software fuera del control de IT. Con la…

56 años atrás

El SaaSpocalypse de 2026: 285 mil millones borrados y lo que viene después

285.000 millones de dólares en valoración SaaS evaporados. Klarna abandona Salesforce. Microsoft predice que los…

56 años atrás