Obtener nombre, dirección y otros detalles de un blog dentro una red de blogs WordPress
Las redes de blogs WordPress, los antiguos WordPress Multisite, son una alternativa muy funcional para poder mantener multitud de sitios, en una sola instalación. No tienen por qué ser blogs, ni formar parte de una red como tal, sino pertenecer a una misma instalación para ahorrar en recursos y en mantenimiento.
Si tenéis dudas de cómo se usan o de qué posibilidades tienen, que no es el objetivo de este artículo, preguntadme en comentarios y os comento e incluso podemos preparar una entrada sobre ello.
Vayamos al grano. Normalmente, las redes blogs suelen agrupar blogs de una misma temática. En esos casos, lo normal es que haya un blog que sea el “resumen” o “índice” del resto. Para esos casos, se suele desarrollar un Page Template o shortcode que muestra la información que deseamos al respecto.
Dentro de la programación de ese Page Template o shortcode necesitamos incluir información relativa a los blogs de nuestra red. Os voy a explicar cómo hacerlo.
Función get_blog_details()
Esta función devuelve un objeto con los datos del blog, tiene dos parámetros:
- field: de tipo mixed, es decir, acepta varios tipos. Sirve para definir a qué blog nos referimos y podemos hacerlo enviando el ID del sitio dentro de la red o su slug (también podemos hacerlo pasándole más campos, un array con varios campos: dominio, ruta…). Si no lo enviamos, devuelve los datos del blog actual.
- get_all: para que devuelva todos los datos del blog o sólo los que definamos, si no lo ponemos devuelve todos.
Ejemplo de uso
Y ahora viene el uso, veamos un ejemplo. Este ejemplo obtiene todos los blogs de una red y muestra sus nombres con sus enlaces:
$blog_list = wp_get_sites(); foreach ($blog_list as $blog): $detalles = get_blog_details($blog["blog_id"]); ?> <h2 class="post-title"><a href="<?php echo $detalles->siteurl; ?>"><?php echo $detalles->blogname; ?></a></h2> <?php endforeach; ?>
Si queréis saber qué más contiene el objeto detalles os recomiendo leer la referencia de la función, ver cómo está implementada y la referencia de las tablas WordPress. Y más inmediato todavía es hacerle un var_dump($detalles).
Comentarios, preguntas y dudas; ya sabéis, en la parte de comentarios.