it-swarm.com.de

WP Multisite: Inhalt von Site X auf Site Y geladen

Ich verwende ein WP Multisite-Netzwerk auf meiner professionellen Website (http://mydomain.com). Ich möchte mit jQuery Mobile herumspielen und mobilen Benutzern eine andere Website und Web-Erfahrung bieten. Deshalb habe ich eine weitere Website in diesem Netzwerk unter http://m.mydomain.com erstellt.

Auf der main (desktop) WP Site habe ich einen Inhaltstyp "Projekt" erstellt, um meine professionellen Projekte zu sortieren. Auf der mobilen Site, die ich erstellen möchte, möchte ich diese Projekte (von der Desktop-WP-Datenbank) laden können, anstatt alle Projekte auf der mobilen WP-Site neu erstellen zu müssen.

Ich habe bereits an etwas Ähnlichem gearbeitet: Ich musste über eine Subdomain der main WP Site auf WP Content zugreifen, wobei ich die 'require wp-load.php'-Technik verwendete, aber ich bin es Fragen Sie sich, ob es eine integrierte Funktion in WP gibt, um dies auf eine sauberere Art und Weise zu tun, da sich beide Standorte im selben Netzwerk befinden.

6
user20569

Sie können einfach die Funktion switch_to_blog verwenden, bevor Sie die WP_Query für Ihre post_type "projects" ausführen.

Wechseln Sie das aktuelle Blog zu einem anderen Blog. switch_to_blog () ist nützlich, wenn Sie Beiträge oder andere Informationen aus anderen Blogs abrufen müssen.

Klingt so, wie Sie es wollen. Nehmen wir also an, Sie haben Ihre Inhalte auf der main_site. Führen Sie dies auf der Mobilesite aus:

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