因此,这是我很长一段时间以来一直在试图弄清楚的,关于自定义分类“workplace”的自定义归档页面。有很多工作场所,我想要的是按类别显示与工作场所相关的产品(自定义post类型),还有后代(第232行就是这样的例子)。)因此,对于类别的6个部分,它会找到与每个产品相关联的每个产品类别,并且不会显示主类别,因为它已经是一个选项卡(就像一个重复的选项卡)。代码找到唯一的类别,然后只在相关部分中显示它们。
所有这些都很好,直到我尝试更多地实现ajax加载。
我遇到的问题是,页面循环是用原始产品数量/计数初始化的,而对于类别的分页目的,我需要它只考虑每个部分的类别计数。请参阅,由于某些产品来自同一类别,因此产品编号大于类别计数。
我认为我需要做的是计算页面循环之外的类别(或者woocommerce循环),然后根据发现实现页面循环。我是否应该以某种方式访问页面被查询的对象(工作区),并在循环之前找到信息?我就是搞不懂。
如果有人能在这件事上放点光,那就太好了。
.major_cat_archive.custom_banner_style::before {
<?php $term = get_queried_object();
// vars
$image = get_field('banner_image', $term);
if ($image)
{
?>background-image: url(<?php echo $image['url']; ?>);
<?php
}
elseif (!$image)
{
?>background-image: url(<?php woocommerce_category_image();
}
?>);
}
Our Value Promise
Trigger Side Cart
slug;
}
/**
* Hook: woocommerce_shop_loop.
*/
do_action('woocommerce_shop_loop');
// wc_get_template_part( 'content', 'product' );
}
}
/*at this point, all relevant category slugs have been gathered and then sorted to remove duplicates.*/
?>
slug == $workwear_safety->slug))
{
if ($value->slug != $workwear_safety->slug)
$array_of_workwear[] = $value->slug;
}
elseif (prod_cat_is_ancestor_of($hygiene_products, $value) || ($value->slug == $hygiene_products->slug))
{
if ($value->slug != $hygiene_products->slug)
$array_of_hygiene_products[] = $value->slug;
}
elseif (prod_cat_is_ancestor_of($hygiene_equipment, $value) || ($value->slug == $hygiene_equipment->slug))
{
if ($value->slug != $hygiene_equipment->slug)
$array_of_hygiene_equipment[] = $value->slug;
}
elseif (prod_cat_is_ancestor_of($catering_supplies, $value) || ($value->slug == $catering_supplies->slug))
{
if ($value->slug != $catering_supplies->slug)
$array_of_catering_supplies[] = $value->slug;
}
elseif (prod_cat_is_ancestor_of($window_cleaning, $value) || ($value->slug == $window_cleaning->slug))
{
if ($value->slug != $window_cleaning->slug)
$array_of_window_cleaning[] = $value->slug;
}
else
{
global $post;
$terms = get_the_terms( $post->ID, 'product_cat' );
foreach ($terms as $term ) {
$product_cat_id = $term->term_id;
$product_cat_name = $term->slug;
break;
}
if($value->slug != $product_cat_name)
$abstract_categories[] = $value->slug;
}
}
}
?>
: Relevant Categories
Workwear
& Safety
Hygiene Products
Hygiene Equipment
Catering Supplies
Window Cleaning
More
Workwear & Safety
';
foreach ($array_of_workwear as $check)
{
$value = get_term_by('slug', $check, 'product_cat');
workplace_construct_categories($value);
}
}
if (!empty($array_of_workwear)) echo '';
?>
Hygiene Products
';
foreach ($array_of_hygiene_products as $check)
{
$value = get_term_by('slug', $check, 'product_cat');
workplace_construct_categories($value);
//wc_get_template_part( 'content', 'product_cat' );
}
}
if (!empty($array_of_hygiene_products)) echo '';
?>
Hygiene Equipment
';
foreach ($array_of_hygiene_equipment as $check)
{
$value = get_term_by('slug', $check, 'product_cat');
workplace_construct_categories($value);
}
}
if (!empty($array_of_hygiene_equipment)) echo ''; ?>
Catering Supplies
';
foreach ($array_of_catering_supplies as $check)
{
$value = get_term_by('slug', $check, 'product_cat');
workplace_construct_categories($value);
}
}
if (!empty($array_of_catering_supplies)) echo '';
?>
Window Cleaning
';
foreach ($array_of_window_cleaning as $check)
{
$value = get_term_by('slug', $check, 'product_cat');
workplace_construct_categories($value);
}
}
if (!empty($array_of_window_cleaning)) echo '';
?>
More
';
foreach ($abstract_categories as $check)
{
$value = get_term_by('slug', $check, 'product_cat');
workplace_construct_categories($value);
}
echo '';
?>
';
} ?>
';
print_r( $array_of_hygiene_products);
echo '';?>
您将在单独的选项卡中看到我的函数来构造类别:
/*For use on WORKPLACE TAX PAGE*/
function workplace_construct_categories($value){
global $wp_query;
$wp_slug = $wp_query->query_vars['workplaces'];
$cat_slug = $value->slug;
$cat_name = $value->name;
echo '
' . '' .
esc_html($cat_name) . '';
}发布于 2022-03-30 09:34:27
我解决了我的问题:
事实证明,对于我的需求来说,wp_query不是正确的选择。
https://wordpress.stackexchange.com/questions/404102
复制相似问题