我已经创建了一个自定义产品详细信息页面,正在尝试获取该产品的类别,但它不起作用。
我创建了一个表格,人们可以在其中填写以下问题:
你喜欢什么牌子的?
单击“下一步…”。。。
你喜欢什么型号的?
单击“下一步”,依此类推。它将根据填充的信息获取产品。
这是我的密码
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;
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;
}