Crear Widget: “Últimas Entradas Blog”, para una web externa a WP

Si tenéis un blog en WordPress podeis crear fácilmente un apartado en la zona de Widgets que haga referencia a las “últimas entradas escritas”, pero ¿y si queréis crear manualmente ese Widget en una web externa totalmente ajena a este WordPress?, ¿cómo se haría?

wordpress

PASOS PARA REALIZAR UN “WIDGET WORDPRESS” EN UNA WEB EXTERNA AL WORDPRESS

  • 1.Crear un campo “descripción de la entrada” en la base de datos WordPress
    Yo personalmente aprovecho el campo metadescripción que el Plugin SEO de Yoast me ofrece, pero cualquier otro plugin de SEO nos realizará la misma función.
    Por lo tanto instalamos el Plugin Yoast en nuestro WordPress, y rellenamos los campos de descripción.
  • 2. Observar el nuevo campo creado en la Base de Datos
    Ahora abrimos la base de datos WordPress y observamos que:
    bd-wp

    Dentro de la tabla “wp_postmeta” se ha creado el campo “meta_value”, que corresponde a la descripción de la entrada que hemos escrito anteriormente.
    Además el campo post_id es autoincremental, y las últimas entradas tienen un valor más alto.

  • 3.Dar Acceso a la base de datos para peticiones externas
    En este servidor donde se aloja la base de datos WordPress, será importante dar acceso a las peticiones mysql externas, para ello buscaremos el fichero my.conf que normalmente esta disponible en /etc/my.cnf, (si el servidor es linux), a continuación modificaremos la línea que pone “bind-address=127.0.0.1” y lo sustituiremos por “bind-address = 0.0.0.0“, después habrá que hacer un restart del mysql “service mysql restart”.
    Con esto lo que estamos haciendo es decirle al daemon mysqld que escuche peticiones externas.
    my-conf
    my-conf
  • 4. Código PHP para la web externa a WordPress
    Por último realizamos el código PHP encargado de mostrarnos en pantalla la descripción de las últimas entradas escritas en nuestro Blog.
    En el sitio web ajeno al WordPress de nuestro Blog creamos este código:

    <?php                
    $conwp=mysqli_connect("90.121.178.56","user_bd","password_bd","nombre_bd");
    //conexión a la base de datos wordpress
    
    header("Content-Type: text/html;charset=utf-8");
    $acentos = $conwp->query("SET NAMES 'utf8'");
    //Para mostrar los acentos
    
    // Check connection
    if (mysqli_connect_errno())
      {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }
    
    //aquí creamos la consulta a la base de datos WordPress, en este caso seleccionamos las 3 últimas
    $resultado = mysqli_query($conwp,"select meta_value from wp_postmeta where meta_value LIKE '%a%' and meta_key='_yoast_wpseo_metadesc' order by post_id desc limit 0 ,3");
    
    //creamos un listado con las descripciones de las entradas
    echo "<ul style='color:grey; margin-left:8px; padding:0px; '>";  
    
    while($row = mysqli_fetch_array($resultado))
    {
    
    echo "<a href='http://www.dominio.com/blog'><li style='color:grey; margin-left:10px; margin-top:11px; text-align:justify; margin-right:10px; '>".$row['meta_value']."</li></a>";
    
    }
    echo "</ul>";   
    mysqli_close($conwp);   
    ?>

Ahora observamos el resultado al navegar por esta web y ejecutarse el código PHP, ya tenemos nuestro propio “widget” listo para usar.

Espero que este artículo os sirva de ayuda,
Un saludo,
Óscar / Devservice.es

Por Óscar Carrillo