无法获取产品类别

时间:2016-08-03 作者:Mark Alan

我已经创建了一个自定义产品详细信息页面,正在尝试获取该产品的类别,但它不起作用。

我创建了一个表格,人们可以在其中填写以下问题:

你喜欢什么牌子的?

单击“下一步…”。。。

你喜欢什么型号的?

单击“下一步”,依此类推。它将根据填充的信息获取产品。

这是我的密码

if ( isset( $_REQUEST[\'product_tag\'] ) ) {
    $tags = $_REQUEST[\'product_tag\'];
}

$args = array( 
    \'post_type\'      => \'product\', 
    \'posts_per_page\' => 1, 
    \'product_tag\'    => $tags 
);
$loop           = new WP_Query( $args );
$product_count  = $loop->post_count;

if ( $product_count > 0 ) :
    while ( $loop->have_posts() ) :
        $loop->the_post();
        global $product;        
        global $post;
        $thePostID = $post->post_title;
        //echo \'<img src="\'.$woocommerce->plugin_url().\'/assets/images/placeholder.png" alt="" width="\'.$woocommerce->get_image_size(\'shop_catalog_image_width\').\'px" height="\'.$woocommerce->get_image_size(\'shop_catalog_image_height\').\'px" />\';
        $terms = wp_get_object_terms($post->ID, \'product_cat\'); 
        echo $terms->name;

        // ...
    endwhile;
endif;

1 个回复
SO网友:bynicolas

你有几件事做错了。

删除全局变量,因为我们已经在自定义循环中工作,不需要全局$post或其他全局变量$args (假设这是您想要的)$_GET 或$_POST 相应地,而不是$_REQUEST.

  • $terms 是一个对象,因此需要对其进行迭代以获取所需信息init 但您可能希望稍后根据您的代码进行挂钩
  • add_action(\'init\', \'wpse_233955\' );
    function wpse_233955 (){
      if ( isset( $_REQUEST[\'prod_tag\'] ) ) {
        $tags = $_REQUEST[\'prod_tag\'];
     }
    
     $args = array(
        \'post_type\'      => \'product\',
        \'posts_per_page\' => -1, // Get all post with the tag not just 1
        \'product_tag\'    => $tags
      );
    
      $query           = new WP_Query( $args ); // $query is you custom loop
      $product_count   = $query->post_count;
    
      if ( $product_count > 0 ) :
    
        while ( $query->have_posts() ) :
    
          $query->the_post(); // This will set the $query object to the current post item
          $thePostID = get_the_ID(); 
          $terms = wp_get_object_terms( $thePostID, \'product_cat\');
    
          foreach( $terms as $term ){
            echo $term->name;
          }
    
          // ...
        endwhile;
      endif;
    }
    

    相关推荐