web-dev-qa-db-fra.com

Des solutions pour réintégrer des catégories dans des blogs multisites?

J'ai fait une recherche sur ce sujet mais je n'ai pas pu trouver de solution à cette question spécifique impliquant wordpress multisite.

J'ai actuellement un réseau wordpress où domain.com est notre site principal, puis chaque site a été localisé avec des domaines de code de pays et des services de pays spécifiques.

Par exemple: principal domain.com - Australie domain.com.au - UK domain.co.uk etc.

Dans le back-end, il est configuré en tant que sous-répertoires, domain.com, domain.com/au etc.

Ce que je cherche à faire est de définir des catégories sur le site principal, par exemple:

Galerie - Australie - Royaume-Uni, etc.

Lorsque je coche la case "Australie", toutes les publications de la sous-catégorie "Australie" sont automatiquement redirigées dans les catégories de configuration/définition correspondantes?

Y at-il un plugin/solution à cette qeury? J'ai lu beaucoup d'articles, mais ils n'étaient destinés qu'à des installations sur un seul site.

1
Lilap
add_filter( 'the_posts', 'wpse138563_add_posts' );
function wpse138563_add_posts( $posts ) {
    if( ! is_multisite() ) {
        // if we're not using Multisite, bail
        return;
    }
    if( is_main_site() ) {
        // if we're in the root site, bail
        return;
    }
    $country = get_bloginfo( 'name' );
    // This assumes that the categories in your main site
    // have the same names as the country sites do
    if( $query->is_main_query() ) {
        // alter the main query
        switch_to_blog( BLOG_ID_CURRENT_SITE );
        $category = get_cat_ID( $country );

        // get the posts with the appropriate category
        $args = array(
            'category' => $category,
        );
        $more_posts = get_posts( $args );
        $posts = array_merge( $posts, $more_posts );

        restore_current_blog();
    }
    return $posts;
}

Non testé. J'espère que cela fonctionne, ou du moins vous fournit un point de départ.

Avertissement: Les catégories de votre site racine doivent porter le même nom que les noms de sites de vos sous-sites pour que cela fonctionne. Autrement dit, pour qu'une publication apparaisse sur un site nommé "Australia", votre catégorie sur domain.com doit s'appeler "Australia".

Références

1
Pat J