Vamos a suponer que tenemos el requerimiento de crear un proceso con estas características:
- Se ejecute en forma periódica
- Consulte datos de la base de datos de WordPress
- Cree un post en WordPress en forma automática
- Envíe un correo electrónico
Para encarar este requerimiento, seguiremos los siguientes líneamientos
- Creamos una página PHP
- Que pueda acceder a nuestros datos de WordPress
- Que pueda acceder a la API de WordPress
- Que pueda enviar un correo electrónico
- Programamos la ejecución de la página con el cron de nuestro hosting.
1 ¿Cómo hacer que nuestra página PHP tenga acceso a WordPress?
Para ello agregamos al principio las siguientes líneas de código:
<?php $_SERVER[ 'HTTP_HOST' ] = 'TU-HOST'; $wp_load_loc = "/homeTU-HOME/TU-USUARIO/public_html/wp-load.php"; require_once($wp_load_loc);
Los datos exactos de path y usuario, en mi caso que utilizo BlueHost, los obtuve de la sección Stats del Cpanel:
2 ¿Cómo consultamos la base de datos de WordPress?
Esto lo explicamos anteriormente en el artículo de creación de un plugin con acceso a la Base de datos. El código sería el siguiente:
global $wpdb; $destacados = $wpdb->get_results("SELECT cadena FROM destacado LIMIT 0,15", "ARRAY_N"); $titulo = 'Destacado del día'; $cuerpo = ''; foreach ( $destacados as $destacado) { $cuerpo = $cuerpo . $destacado[0]; }
3 ¿Cómo creamos un post usando la API de WordPress?
Esto es realmente sencillo. De todas maneras, los parámetros pueden varias según nuestras necesidades. Más información en: http://codex.wordpress.org/Function_Reference/wp_insert_post
El código sería:
$new_post = array( 'post_title' => $titulo, 'post_content' => $cuerpo, 'post_status' => 'draft', 'post_author' => 1, 'post_type' => 'post' ); $post_id = wp_insert_post($new_post);
En caso que queramos efectuar una salida por pantalla para hacer pruebas, podemos usar el siguiente código:
echo '<meta http-equiv="content-type" content="text/html; charset=utf-8"></meta>'; echo $titulo; echo $cuerpo;
4 ¿Cómo enviamos un correo electrónico?
El último paso es enviar el correo, para lo cual usamos este código:
mail("blabla@blabla.com", $titulo, $cuerpo );
5 ¿Cómo programamos la ejecución periódica de nuestro proceso?
Para programar la tarea en el cron de BlueHost, vamos a la sección advanced del Cpanel de BlueHost:
Lo más importante es programar el comando. BlueHost nos ayudará, pero puede quedar una línea como la siguiente:
/ramdisk/bin/php5 -c /home/USUARIO/PathTo/php.ini /home/USUARIO/public_html/wp-content/test.php
Donde los datos más importantes son el Home, el Usuario y la página en sí que hemos creado.
Imagine el poder que podemos dar a nuestro sitio con esto!!!
Eso es todo por hoy, cualquier duda me consultan.
Hasta la próxima!
0 comentarios:
Publicar un comentario