¿Cómo obtener el ID del sitio actual? (WPMU)

3 oct 2014, 00:53:37
Vistas: 29.3K
Votos: 10

Estoy usando WordPress con MU activado. Encontré una función aquí que supuestamente devuelve un objeto con el ID del sitio actual. Pero está devolviendo 1 para todos los sitios web.

<?php get_current_site(); ?>
1
Comentarios

El bloque de documentación para esa función es engañoso/incorrecto.

fuxia fuxia
3 oct 2014 01:06:28
Todas las respuestas a la pregunta 2
2
11

Tienes razón, get_current_site()->blog_id devolverá 1, ya que se refiere a la red.

Para obtener el ID del sitio (blog) actual puedes hacerlo así:

<?php echo get_current_blog_id(); ?>

Además, puedes obtener los detalles del sitio (blog) actual de esta manera:

<?php var_dump(get_blog_details()->blog_id); ?>
3 oct 2014 01:03:19
Comentarios

¡Gracias! ¿Existe algún lugar con documentación para todas las funciones de WPMU? ¿Siguen aplicándose las funciones antiguas (antes de que MU pasara a formar parte de WordPress)?

gdaniel gdaniel
4 oct 2014 04:15:11

@gdaniel Sí, hay una página en el Codex sobre funciones de WPMU; que yo sepa, la mayoría todavía se aplican :)

Sven Sven
4 oct 2014 04:29:37
0

Primero verifica si el usuario pertenece al sitio actual usando

 <?php is_user_member_of_blog( $user_id, $blog_id ); ?>

Después de obtener el ID del usuario, crea un rol de usuario

$user = new WP_User( $user_id );
if ( $user ) {
$roles = $user->roles; 

y finalmente crea publicaciones para cada usuario añadiendo el rol en los argumentos. No está probado pero debería funcionar para lo que necesitas.

<?php
$args1 = array(
    'role' => 'subscriber',
    'orderby' => 'user_nicename',
    'order' => 'ASC'
);
$subscribers = get_users($args1);
echo '<ul>';
foreach ($subscribers as $user) {
    echo '<li>' . $user->display_name.'['.$user->user_email . ']</li>';
}
echo '</ul>';

?>
20 feb 2018 09:55:00