Poner una lista de todos los sitios de tu WordPress

Para aquellos que tengan un WordPress Multisite (como nosotros), seguramente les interese poner una lista de todos los sitios y sus URLs.

Aunque existen plugins y cosas de esas que son capaces de hacerlo, lo mejor es tener control total sobre ello a fin de poderlo poner como nos guste. Así que vayamos a un ejemplo del código necesario.

<?php
$blogs = get_blog_list( 0, 'all' );

if ( 0 < count( $blogs ) ) :
    foreach( $blogs as $blog ) : 
        switch_to_blog( $blog[ 'blog_id' ] );

        if ( get_theme_mod( 'show_in_home', 'on' ) !== 'on' ) {
            continue;
        }

        $blog_details = get_blog_details( $blog[ 'blog_id' ] );
        ?>
        

            	<li>
                <a href="<?php echo $blog_details-> siteurl ?>">
                    <?php echo  $blog_details->blogname; ?>
                </a>
            	</li>
            <?php  restore_current_blog();
            ?>
     
<?php endforeach;
endif; ?>

Como vemos, recorremos la lista de blogs con el get_blog_list (buscandolos todos) y, para obtener la información de cada uno, simplemente nos “switcheamos” al blog en cuestión a fin de sacar con get_blog_details la información del blog en concreto. A continuación, retornamos al nuestro con restore_current_blog y listo.

Si necesitais saber una lista de metodos del objeto, podeis consultar la documentación de WordPress. Eso si, de esta forma podeis maquetar los resultados como más os gusten.

tuti

Técnico en Comunicación Interna de la UVa

4 comentarios en “Poner una lista de todos los sitios de tu WordPress”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *