digiboy

Technologie, musique, graphisme, lifestyle, videogames, films, mode …
Abonnez vous à mon flux Rss

Multisite wordpress : Comment afficher simplement le contenu d’un blog dans un autre ?

Récemment, j’ai été confronté à un problème lors de la réalisation d’un projet mettant en jeu un réseau de blogs avec WordPress 3. L’enjeu était de récupérer des informations provenant des sites d’un reseau sur le blog principal. Différentes manières de résoudre le problème s’offraient à moi jusqu’à ce que je découvre une fonction absolument indispensable et très utile : switch_to_blog.

L’idée est merveilleusement simple. A l’aide de cette fonction, vous changez (switchez) littéralement de blog … Libre à vous d’afficher tout types d’informations en provenance de celui ci.

<?php switch_to_blog($new_blog); ?>

La variable $new_blog correspond à l’identifiant du blog cible. Pour rétablir le contexte d’origine, vous devrez utiliser la fonction :

<?php restore_current_blog(); ?>

Un exemple : Pour afficher sur votre blog principal (id 1) les 5 derniers titres des articles de votre sous blog 2 :

<?php switch_to_blog(2); ?>
<?php $my_query = new WP_Query('posts_per_page=5');
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></h2>
<?php endwhile; ?>
<?php restore_current_blog(); ?>

Les possibilités sont infinies : Un menu récurrent, une page récapitulative, un article redondant (les CGV, mentions légales), etc …

Switch_to_blog dans le codex

email

11 commentaires

  1. mikan dit :

    Merci pour cet article, ces très intéressant, j’utilise multisite dans wordpress, et j’ai vraiment besoin de cette fonction, Merci beaucoup

  2. privaloops dit :

    C’est effectivement une fonction très pratique mais également très gourmande en ressource, à utiliser avec modération donc

  3. […] contenu d’un blog dans un autre (menus, articles, etc.). Grâce à @digiboy et son article Comment afficher le contenu d’un blog dans un autre ? vous en saurez plus sur switch_to_blog(), une fonction aussi intéressante que méconnue. This […]

  4. […] comment afficher le contenu d’un blog dans un autre. Grâce à @digiboy et son article Comment afficher le contenu d’un blog dans un autre ? vous en saurez plus sur switch_to_blog(), une fonction aussi intéressante que méconnue. This […]

  5. florian dit :

    Super info, c’est exactement ce qu’on cherchais pour notre blog !

    Merci ;)

  6. Daniel Roch dit :

    Tout simplement excellent. Je connaissais une autre technique qui consistait à faire appel au fichier wp-load.php, mais les codes donnés ici sont plus efficaces et rapides à charge pour intégrer du code dans un WordPress multi-site.

    Beau travail. ;)

  7. Aloisioa dit :

    Bonjour je suis débutant php et wordpress, et j’aimerai savoir ou dois-je mettre cette fonctions « dans quelqu’elle fichier de mon dossier wordpress et je me demandais si il est possible de l’intégrée dans un widget? Merci d’avance.

  8. ladybeug dit :

    bonjour,
    je cherche a utiliser cette fonction, en effet j’essaie d’afficher sur mon blog2, le même slider que sur le blog1.
    malheureusement c’est un peu plus compliqué.
    auriez vous une piste ?

Laisser une réponse