我想在我的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 );
所有产生相同的结果,页面显示为空白,没有数据。
之前我使用过类似的代码,例如显示特定类别中的所有产品并且它有效。但我似乎无法让这个工作,以显示商店中的所有产品。
请帮忙吗?
答案 0 :(得分:2)
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
,例如从Codex查看Debugging in WordPress。
答案 1 :(得分:0)
我建议您使用wordpress中的导出选项从当前站点获取数据,然后使用导入选项在您想要的新站点中获取数据。这很简单,根本不需要编码。