Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php从数据库中获取所有woocommerce产品_Php_Wordpress_Woocommerce - Fatal编程技术网

如何使用php从数据库中获取所有woocommerce产品

如何使用php从数据库中获取所有woocommerce产品,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我正在尝试使用php从数据库中获取woocommerce的所有产品。。但它并没有给我所有产品的清单 <select Name='choose'> <?php $args = array( 'post_type' => 'product' ,'posts_per_page' => 100); $loop = new WP_Query( $args ); while ( $loop->have_posts() ) : $loop-

我正在尝试使用php从数据库中获取woocommerce的所有产品。。但它并没有给我所有产品的清单

  <select Name='choose'>
  <?php
  $args = array( 'post_type' => 'product' ,'posts_per_page' => 100);
  $loop = new WP_Query( $args );
  while ( $loop->have_posts() ) : 
      $loop->the_post();
      echo '<option selected value="'.the_title().'</option>';
  endwhile;
  ?>
</select>

有谁能告诉我怎么才能买到吴商行的所有产品吗


谢谢

您的代码在我的机器上运行良好,但是它似乎与您以前的wp查询有冲突。你也可以试着得到所有这样的产品

<select Name='choose'>
<?php
$args = array( 'post_type' => 'product' ,'posts_per_page' => 100);
$products = get_posts( $args );
foreach( $products as $product ) : 
  echo '<option selected value="'.$product->post_title.'</option>';
endforeach;
?>
</select>

为了在Single.php页面上获取单个产品,您可以使用我在这里建议的代码。请参阅:

为了获取数据库中的所有产品,您可以执行以下步骤

您还可以根据
WP_查询
获取Woo commerce产品,这样它也可以单独保存在
WP_posts
表中。因此,我们可以单独稍微修改post类型,以便让
WP\u查询
工作

第一步: 首先,我们将了解WP_查询必须传递的参数

$params = array(
        'posts_per_page' => 5, 
        'post_type' => 'product'
);
注意:如您所见,我们所做的只是在数组中添加一个post_类型变量,并将其值设置为“product”;查询现在将查找WooCommerce产品,而不是帖子

第二步:之后,我们必须使用与普通WP_查询相同的结构运行

<?php
$params = array(
        'posts_per_page' => 5, 
        'post_type' => 'product'
);
$wc_query = new WP_Query($params); 
?>
<?php if ($wc_query->have_posts()) :  ?>
<?php while ($wc_query->have_posts()) : $wc_query->the_post();  ?>
<?php the_title(); //Prints the title over Here ?>
<?php //You can add what ever you need from the loop over here ?>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
<?php else:  ?>
<p>
     <?php _e( 'No Products' );  ?>
</p>
<?php endif; ?>


解释
  • 创建WP_查询要使用的参数数组;首先,它只是一些基本的帖子,但是通过向这些参数添加更多细节,我们可以为我们的查询获得不同的结果
  • WP\u Query
    用于查询第一行中创建的参数
  • 将检查查询是否返回任何结果
  • 如果有结果,则我们对其进行迭代:
    • 首先,设置全局变量
      $post
      ,以确保下一个函数正常工作
    • 第二,设置变量
      the_title()
      ,该变量负责显示产品标题
  • 然后,当显示posts时,我们使用
    wp\u reset\u postdata
    函数将$post变量返回到其原始状态
利用这一点,我研究了如何使用WP_查询来查询WooCommerce产品,我在这里分享了这篇文章,以便大家都能使用这篇文章


快乐编码:)

哪里是
product\u cat
?我希望所有类别productstry首先获得一个类别,然后以
数组
格式获得一个所有类别名称并传递给它,以便查看此。。我已经试过了,但它对我来说不起作用@LifeTimeProgrammer。。请看,我还提出了与此相关的问题,这就是为什么我使用此方法,而此代码可能会回答此问题,提供有关如何和/或为什么解决此问题的附加上下文将提高答案的长期价值。
$this->db->select('*');
        $this->db->from('vm_posts');
        $this->db->join('vm_postmeta', 'vm_postmeta.post_id = vm_posts.id');
        $this->db->join('vm_wc_product_meta_lookup', 'vm_wc_product_meta_lookup.product_id = vm_postmeta.post_id');
        $this->db->join('vm_inventory', 'vm_wc_product_meta_lookup.sku = vm_inventory.product_sku');
        $this->db->join('vm_terms', 'vm_inventory.customer_id = vm_terms.name');
        $this->db->where('post_type','product');
        $query = $this->db->get()->result();