Hoy vamos a ver cómo mostrar los últimos posts de tu blog, a veces nuestra web principal no está hecha con WordPress, y el blog es un añadido a nuestra web principal.
Y en ese caso quizás queramos mostrar los últimos posts de tu blog, para conseguir un buen interlinking y que Google nos tome en cuenta.
Conectar con la Base De Datos
El primer paso a realizar es tan simple como importante, debemos conectar con la base de datos donde tengamos nuestro WordPress.
Los datos de conexión, nos lo debería proporcionar nuestro proveedor del servicio ya sea desde el panel de administración de nuestro producto o bien sea por algún email que nos hayan enviado, o bien solicitandoselo a ellos por teléfono o email.
Una vez tengamos los datos de conexión deberemos hacer lo siguiente:
| <?php define('HOST_NAME', 'host_de_nuestra_base_de_datos'); define('DB_NAME', 'nombre_de_nuestra_base_de_datos'); define('USERNAME_DB', 'usuario_de_base_de_datos'); define('PASSWORD_DB', 'contraseña_de_base_de_datos'); $db = null; try { $db = new PDO('mysql:host='.HOST_NAME.'; dbname='.DB_NAME, USERNAME_DB, PASSWORD_DB); } catch (PDOException $e) { echo "Error!: " . $e->getMessage() . "<br/>"; die(); } ?> |
Usaremos una conexión con PDO, y que las funciones como mysql_connect está totalmente obsoleta y anticuada.
Os he dejado el ejemplo, pero cada cual puede usar la conexión como quiera 🙂 simplemente quiero hacer el ejemplo completo.
Hacemos la consulta
Ahora generamos la consulta para acceder a los últimos posts.
| <?php $posts = $db->query(" SELECT post_title, post_name FROM wp_posts WHERE post_status = 'publish' AND post_type = 'post' ORDER By post_date DESC LIMIT 0,5 "); ?> |
En esta consulta, cogemos lo que es el título del post y el nombre del post, que es lo que a mi me hacía falta
Aunque también podríamos coger más datos, como el contenido del post (post_content), la fecha del post (post_date), hay más datos, pero estos creo que son los más importantes.
Pero yo solo cojo, el post_title y el post_name. El primero
La tabla a la que accedemos en este caso es: «wp_posts«.
Podría ser que al instalar tu WordPress, hubieras puesto otro tipo de sufijo o ninguno llamándose la tabla, simplemente: «posts«.
Puede ser que al instalar el WordPress, o con la instalación que os hayan hecho, se haya añadido un sufijo a las tablas de WordPress. Así que si por ejemplo habéis puesto como sufijo «blog» pues la tabla se llamará «blog_posts«.
Luego filtraremos por los posts que hayan sido publicados usando la condición «post_status = ‘publish’» ya que no creo que nos interese que la gente vea los posts que aún no hemos publicado.
Añadimos también la condición «post_type = ‘post’» donde estamos seleccionando que lo que mostremos sean tipo posts, ya que tenemos otras muchas opciones como:
- Revision
- Attachment
- Page
- Customize_changeset
Y seguro que alguno más…
Y aquí lo único que nos interesa es el post final, no queremos ni revisiones ni páginas.
Para acabar los he ordenado por fecha (post_date) de forma descendiente, de post más nuevo a más viejo.
Y por último limitamos la consulta a 5 posts, usando LIMIT 0,5, aunque cada cual puede poner ahí lo que quiera por supuesto.
Mostramos los últimos posts
Y ya por último y no menos importante pues mostraremos estos últimos 5 posts en nuestra web.
| <h2>Últimos posts:</h2> <ul> <?php foreach ($posts as $post) { ?> <li>- <a href="http://www.oyagum.com/articulos/<?php echo $post['post_name'];?>"><strong><?php echo $post['post_title'];?></strong></a></li> <?php } ?> </ul> |
Simplemente recorremos la variable donde tenemos el resultado de la consulta, y mostramos como queramos.
En mi caso he puesto un h2, anunciando el título de la sección y luego muestro los posts con un listado usando ul y li.
Para generar la url del enlace, cogemos la url principal de nuestro blog, en mi caso http://www.oyagum.com/articulos/ y le añadimos el valor de post_name, que es el nombre del enlace que usamos para el post.
Y usamos la variable post_title que es la que almacena el título de nuestro post.
Como veis, es bastante fácil y simple, espero que os haya servido y si algo no ha quedado claro, preguntad e intentaré explicarlo lo mejor posible.
Y recordad! No olvidéis comentar! Vuestro código y en el blog 😉