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

OpenAI dice que su IA hackeó sola a otra empresa: qué pasó de verdad (y por qué importa)

Durante una prueba de seguridad, unos modelos de OpenAI se saltaron el aislamiento, buscaron salida…

57 años atrás

Cómo montar un consejo de inteligencias artificiales (y por qué decide mejor que una sola)

En vez de preguntarle a una sola IA como quien consulta un oráculo, convocas a…

57 años atrás

Cómo ganar dinero alimentando a las IAs (en serio, ya se puede)

Los bots de IA llevan dos años comiéndose tu contenido gratis. Con el Monetization Gateway…

57 años atrás

Codebuff abrió TODO su código y le gana a Claude Code: el playbook AI-native que deberías copiar

Regalar el código dejó de ser un suicidio: ahora es la mejor campaña de marketing.…

57 años atrás

Cómo enseñar los descuentos de Shopify en la ficha sin cargarte el SEO

Mostrar el descuento en la ficha de producto sube la conversión, pero muchas apps lo…

57 años atrás

Spec-driven development: el contrapeso disciplinado al vibe coding

El desarrollo con IA se ha dividido en dos campos: el vibe coding rápido y…

57 años atrás