web-dev-qa-db-ja.com

カテゴリとWP_Queryを使用してメインドメインからサブドメインにコンテンツを取得する

私は2つのサブドメインを持つメインWebサイトを持っています。

www.example.com

www.space.example.com

www.products.example.com

分類するためにカテゴリを使用して私のメインWebサイトに記事を公開したいです。

たとえば、 "space"カテゴリを使用している記事や "products"カテゴリを使用している記事などです。

Wp-queryとカスタム投稿タイプを使用して、私はspace.example.comページに "space"カテゴリの記事を、そして私のproducts.example.comページに "products"カテゴリの記事を表示したいと思います。

私はそれがサブドメインのない単純なウェブサイト上でカテゴリ付きのwp-querieを使って働いているのを知っています:

$query = new WP_Query( 'category_name=space' ); 

または

$query = new WP_Query( 'category_name=products' );

しかし、サブドメインでそれをする方法はありますか?

ネット上で解決策が見つかりません。

誰かがこれを手伝ってくれる?

どうもありがとう

1
user2882154

できることは、サブドメインのtheme functions.phpファイルにpre_get_posts()フィルタを設定して投稿を目的のカテゴリに制限することです。

function my_subdomain_category( $query ) 
{
    if ( $query->is_main_query() ) 
    {
        $query->set( 'cat', '123' ); // use the categoryID for space or products
    }
}
add_action( 'pre_get_posts', 'my_subdomain_category' );
1
BA_Webimax

ありがとう@BA_Webimax

私は私のメインドメインページからデータを取得するために私のサブドメインページ内でこのクエリを使用することによって解決策を見つけました。メインドメインのブログIDは(1)です。例えばサブドメインは2と3です。

<?php switch_to_blog(1); ?>
<?php restore_current_blog(); ?>

サブドメインのページに、私のドメインID 1のカテゴリ "products"の投稿からのすべてのタイトルを表示するには、このようにします。

<?php

switch_to_blog(1); //define the domain containing the posts
$args = array('category_name' => 'products' , 'orderby' => 'title', 'order' => 'ASC' );

$myposts = get_posts( $args );
foreach ( $myposts as $post ) : setup_postdata( $post ); ?>

<?php the_title(); ?>

<?php endforeach;
restore_current_blog(); //switch back to the actual domain
wp_reset_postdata();?>

それが役立つことを願っています!サブドメインを扱うときにとても役に立ちます。カスタムフィールドと高度なカスタムフィールドからデータを取得することもできます。

ベスト

1
user2882154