web-dev-qa-db-fra.com

WP Multisite: charge le contenu du site X sur le site Y

J'utilise un réseau multisite WP sur mon site Web professionnel (http://mydomain.com). J'aimerais jouer avec jQuery Mobile et proposer un site Web et une expérience Web différents aux utilisateurs mobiles. J'ai donc créé un autre site sur ce réseau sur http://m.mydomain.com .

Sur le site principal (bureau) WP, j'ai créé un type de contenu "projet" pour trier mes projets professionnels. Sur le site mobile que je créerai, j'aimerais pouvoir charger ces projets (à partir de la base de données desktop-WP) au lieu de devoir recréer tous les projets sur le site mobile-WP.

J'ai déjà travaillé sur quelque chose de similaire: je devais accéder à WP contenu via un sous-domaine du site principal WP, en utilisant la technique 'require wp-load.php', mais je suis se demander s’il existe une fonction intégrée dans WP pour le faire de manière plus propre, car les deux sites sont sur le même réseau.

6
user20569

Vous pouvez simplement utiliser la fonction switch_to_blog avant d'exécuter WP_Query sur votre post_type "projets".

Basculez le blog actuel sur un autre blog. switch_to_blog (), est utile si vous devez extraire des publications ou d'autres informations d'autres blogs.

On dirait que c'est ce que vous voulez. Alors disons que vous avez votre contenu sur le site principal. Exécutez ceci sur le site mobile:

// Get current blog_id
global $blog_id;

// Run this code if on mobilesite
// Change from blog_id 2 if another id
if( $blog_id == 2 ) {

    // Switch to the main_site
    switch_to_blog(1);

        // Get from projects and all of the posts
        $args = array(
            'post_type'  => 'projects',
            'posts_per_page' => -1
        );

        // The Query
        $the_query = new WP_Query( $args );

        // The Loop
        while ( $the_query->have_posts() ) :
            $the_query->the_post();
            echo '<li>' . get_the_title() . '</li>';
        endwhile;

        // Restore original Query & Post Data
        wp_reset_query();

    // Switch back to mobilesite
    restore_current_blog();
}
1
Pontus Abrahamsson