Решения для перепоста категорий в многосайтовые блоги?


Я провел поиск по этой теме, но не смог найти решение этого конкретного вопроса, связанного с мультисайтом wordpress.

В настоящее время у меня есть сеть wordpress, где domain.com это наш основной сайт, а затем каждый сайт был локализован с помощью доменов с кодом страны, а также конкретных страновых сервисов.

Например: Основной domain.com - Австралия domain.com.au - Великобритания domain.co.uk и т.д.

В серверной части он настроен как подкаталоги, domain.com, domain.com/au и т.д.

Что я хочу сделать, так это настроить категории на главном сайте, например:

Галерея - Австралия - Великобритания и т.д.

Когда я ставлю галочку в поле "Австралия", он автоматически перепечатывает все сообщения из подкатегории "Австралия" в соответствующие категории настройки/установки?

Есть ли плагин/решение для этого qeury? Прочитал много статей, но они предназначались только для установки на одном сайте.

Author: Lilap, 2014-03-20

1 answers

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;
}

Непроверенный. Надеюсь, это сработает или, по крайней мере, послужит вам отправной точкой.

Предостережение: Категории на вашем корневом сайте должны иметь то же имя, что и имена сайтов ваших дочерних сайтов, чтобы это работало. т.Е., чтобы сообщение появилось на сайте с именем "Австралия", ваша категория на domain.com должна быть названа "Австралия".

Ссылки

 1
Author: Pat J, 2014-03-28 03:48:50