Как получить текущий ID сайта? (WPMU)

3 окт. 2014 г., 00:53:37
Просмотры: 29.3K
Голосов: 10

Я использую WordPress с активированным MU. Я нашел функцию здесь, которая должна возвращать объект с текущим ID сайта. Но она возвращает 1 для всех сайтов.

<?php get_current_site(); ?>
1
Комментарии

Документирующий блок для этой функции вводит в заблуждение/неверен.

fuxia fuxia
3 окт. 2014 г. 01:06:28
Все ответы на вопрос 2
2
11

Вы правы, get_current_site()->blog_id вернёт 1, так как ссылается на сеть.

Чтобы получить ID текущего сайта (блога), можно сделать так:

<?php echo get_current_blog_id(); ?>

Более того, вы можете получить детали текущего сайта (блога) следующим образом:

<?php var_dump(get_blog_details()->blog_id); ?>
3 окт. 2014 г. 01:03:19
Комментарии

Спасибо! Есть ли какое-то место с документацией по всем функциям WPMU? Применяются ли еще старые функции (до того, как MU стала частью WordPress)?

gdaniel gdaniel
4 окт. 2014 г. 04:15:11

@gdaniel Да, в Codex есть страница о функциях WPMU; насколько я знаю, большинство из них все еще работают :)

Sven Sven
4 окт. 2014 г. 04:29:37
0

Прежде всего, проверьте, принадлежит ли пользователь к текущему сайту, используя

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

После получения ID пользователя создайте роль пользователя

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

И в конце создайте записи для каждого пользователя, добавив роль в аргументы. Код не тестировался, но должен сработать.

<?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 февр. 2018 г. 09:55:00