Cum obții ID-ul site-ului curent? (WPMU)

3 oct. 2014, 00:53:37
Vizualizări: 29.3K
Voturi: 10

Folosesc WordPress cu MU activat. Am găsit o funcție aici care ar trebui să returneze un obiect cu ID-ul site-ului curent. Dar aceasta returnează 1 pentru toate site-urile.

<?php get_current_site(); ?>
1
Comentarii

Blocul de documentare pentru acea funcție este înșelător/incorect.

fuxia fuxia
3 oct. 2014 01:06:28
Toate răspunsurile la întrebare 2
2
11

Aveți dreptate, get_current_site()->blog_id va returna 1, deoarece se referă la întreaga rețea.

Pentru a obține ID-ul site-ului (blogului) curent, puteți folosi următoarea metodă:

<?php echo get_current_blog_id(); ?>

Mai mult decât atât, puteți obține detalii despre site-ul (blogul) curent astfel:

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

Mulțumesc! Există vreun loc cu documentație pentru toate funcțiile WPMU? Funcțiile vechi (dinainte ca MU să devină parte din WordPress) încă se aplică?

gdaniel gdaniel
4 oct. 2014 04:15:11

@gdaniel Da, există o pagină în Codex despre funcțiile WPMU; din câte știu eu, majoritatea încă se aplică :)

Sven Sven
4 oct. 2014 04:29:37
0

Mai întâi verifică dacă utilizatorul aparține site-ului curent folosind

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

După ce obții ID-ul utilizatorului, creează rolul utilizatorului

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

și în final creează postări pentru fiecare utilizator prin adăugarea rolului în argumente. Nu este testat, dar ar trebui să funcționeze.

<?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