多站点-获取要从wp_2表中选择的元查询

时间:2017-08-10 作者:John Cogan

Wordpress是个新手,所以如果你能容忍我:-)

我被要求创建一个在头版列出4种特色产品的功能。现在的一个要求是,该功能只能出现在其中一个多站点上。有两个,一个是美国,一个是英国。

目前,我的附加代码正在显示特色产品,但它是为美国做的,我需要它来查看来自英国网站的产品。

在多站点网络设置中,美国站点为站点id 1(主站点),英国站点为站点id 2。

下面是选择和显示特色产品的代码。

<?php
$meta_query   = WC()->query->get_meta_query();
$meta_query[] = array(
  \'key\'   => \'_featured\',
  \'value\' => \'yes\'
);

$args = array(
  \'post_type\'   =>  \'product\',
  \'stock\'       =>  1,
  \'showposts\'   =>  4,
  \'orderby\'     =>  \'date\',
  \'order\'       =>  \'DESC\',
  \'meta_query\'  =>  $meta_query
);
?>
<section class="section padding shop home-shop">
  <h2>Featured Products</h2>
  <ul class="row articles">

<?php
$loop = new WP_Query( $args );

while ( $loop->have_posts() ) :
    $loop->the_post();
    global $product;

    $product_image_size = array(200,200);
    $product_price = $product->get_price_html();
    $product_price = str_ireplace(\'Price\', \'\', $product_price);
    $product_price = str_ireplace(\':\', \'\', $product_price);

    $product_title = get_the_title($loop->post->ID);
    $product_perma_link = get_permalink($loop->post->ID);
    $product_collection_link = get_option("shop_collection_url");

    if ( has_post_thumbnail( $loop->post->ID ) ){
      $img_markup = get_the_post_thumbnail( $loop->post->ID, $product_image_size );
    }else{
        $img_markup = wc_placeholder_img($product_image_size);
    }

    ?><li class="columns medium-3 text-left row_0"><div><?php

    ?><div><?php echo $img_markup; ?></div><?php

    ?><div><?php echo $product_title; ?></div><?php
    ?><div><?php echo $product_price; ?></div><?php

    ?></div></li><?php

endwhile;
wp_reset_query();
?>
    <ul>
      <a href="<?php echo $product_collection_link; ?>">Shop the collection</a>

上面的代码位于其自己的php文件(includes/php/sections/home cherry products.php)中,并且包含在静态主页文件的主页中。php“使用include(\'includes/php/sections/home cherry products.php\');

请注意,文件可能位于sections文件夹中,我没有使用section显示内容。

使用“switch\\u to\\u blog(2);”似乎将查询切换到第二个博客,但没有返回任何产品。

1 个回复
SO网友:Aniruddha Gawade

据我所知,您希望从英国网站获得美国网站上的产品。

您可以使用switch_to_blog() 将查询定向到子站点。此函数使用blog_id 作为参数。

所以,在你的情况下,

switch_to_blog(2);
//your code to fetch data
restore_current_blog(); //this restores query to current sub-site.
请参阅文档:https://developer.wordpress.org/reference/functions/switch_to_blog/

结束

相关推荐

Duplicates with WP_Query loop

我在头版上只显示带有特色图片的帖子。我的问题是,每次加载下一个页面时,我都会收到相同的结果,也就是得到重复的结果。我正在使用按自定义字段排序。欢迎任何可能导致此问题的指示/想法。下面是我的主循环// Layout if(is_category()) { $post_layout = blt_get_option(\'category_post_layout\', \'normal\'); } elseif(is_author()) {