我正在尝试获取我的 Woocommerce 在线商店中的所有产品。我想获取所有产品的数据,并将其打印为 json。但页面一直显示为空白。
我尝试了以下方法来获取所有产品 ID,以便显示所有产品。
$args = array( 'post_type' => 'product', 'post_status' => 'publish', 'p' => '*');
我也尝试过这个:
$args = array( 'post_type' => 'product', 'post_status' => 'publish', 'posts_per_page' => 470);
$loop = new WP_Query( $args );
还有这个:
$args = array( 'post_type' => 'product', 'post_status' => 'publish', 'posts_per_page' => -1);
$loop = new WP_Query( $args );
所有结果都相同,页面显示为空白,没有获取任何数据。
我之前使用过与此类似的代码,例如显示特定类别中的所有产品,并且它有效。但我似乎无法让这个工作,以显示商店中的所有产品。
请帮忙吗?
最佳答案
WooCommerce 2.1+ 现在附带它自己的 REST API 。你绝对应该检查一下。 请注意,您必须使用 https 或 OAuth 来访问它,因此您可能需要使用像这样的客户端 one (我与这个库无关)。
尚不清楚您要从商店检索哪些数据,但根据上面的设置,您可以尝试这个简单的演示示例:
add_action( 'init', function() {
add_rewrite_endpoint( 'wooexport', EP_ROOT );
});
add_action( 'template_redirect', function() {
if( 'json' === get_query_var( 'wooexport' ) ) {
$posts = get_posts( array( 'post_type' => 'product' ) );
wp_send_json_success( $posts );
}
});
您必须记住刷新重写规则,例如通过重新保存永久链接设置。然后,您可以根据需要修改查询参数并从 example.com/wooexport/json/
访问它。
很可能您遇到了 PHP 语法错误,导致白屏?。因此,请始终在测试站点上使用 WP_DEBUG
,例如检查 Debugging in WordPress来自法典。
关于php - 从 WooCommerce 商店获取所有产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26365904/