このトピックについて検索しましたが、ワードプレスマルチサイトに関するこの特定の質問に対する解決策を見つけることができませんでした。
私は現在domain.comが私たちのメインサイトであり、それから各サイトが国コードドメインと特定の国のサービスでローカライズされているワードプレスネットワークを持っています。
例:メインdomain.com - オーストラリアdomain.com.au - イギリスdomain.co.ukなど
バックエンドでは、サブディレクトリ、domain.com、domain.com/auなどとして設定されています。
私がしたいのは、メインサイトにカテゴリを設定することです。
ギャラリー - オーストラリア - イギリスなど
"Australia"のチェックボックスをオンにすると、サブカテゴリー "Australia"からのすべての投稿が自動的に構成/設定された一致カテゴリーに再投稿されますか。
この問題に対するプラグイン/解決策はありますか?多くの記事を読んできましたが、単一サイトへのインストールのみを目的としていました。
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"という名前を付ける必要があります。