web-dev-qa-db-ja.com

カテゴリをマルチサイトブログに再投稿するためのソリューション

このトピックについて検索しましたが、ワードプレスマルチサイトに関するこの特定の質問に対する解決策を見つけることができませんでした。

私は現在domain.comが私たちのメインサイトであり、それから各サイトが国コードドメインと特定の国のサービスでローカライズされているワードプレスネットワークを持っています。

例:メインdomain.com - オーストラリアdomain.com.au - イギリスdomain.co.ukなど

バックエンドでは、サブディレクトリ、domain.com、domain.com/auなどとして設定されています。

私がしたいのは、メインサイトにカテゴリを設定することです。

ギャラリー - オーストラリア - イギリスなど

"Australia"のチェックボックスをオンにすると、サブカテゴリー "Australia"からのすべての投稿が自動的に構成/設定された一致カテゴリーに再投稿されますか。

この問題に対するプラグイン/解決策はありますか?多くの記事を読んできましたが、単一サイトへのインストールのみを目的としていました。

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

テストされていません。うまくいけば、これでうまくいくか、少なくとも出発点がわかります。

警告:これを機能させるには、ルートサイトのカテゴリにサブサイトのサイト名と同じ名前を付けてください。つまり、 "Australia"というサイトに投稿が表示されるようにするには、domain.comのカテゴリに "Australia"という名前を付ける必要があります。

参考文献

1
Pat J