首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于自定义分类和分页问题的自定义存档页

用于自定义分类和分页问题的自定义存档页
EN

WordPress Development用户
提问于 2022-03-25 16:12:16
回答 1查看 169关注 0票数 0

因此,这是我很长一段时间以来一直在试图弄清楚的,关于自定义分类“workplace”的自定义归档页面。有很多工作场所,我想要的是按类别显示与工作场所相关的产品(自定义post类型),还有后代(第232行就是这样的例子)。)因此,对于类别的6个部分,它会找到与每个产品相关联的每个产品类别,并且不会显示主类别,因为它已经是一个选项卡(就像一个重复的选项卡)。代码找到唯一的类别,然后只在相关部分中显示它们。

所有这些都很好,直到我尝试更多地实现ajax加载。

我遇到的问题是,页面循环是用原始产品数量/计数初始化的,而对于类别的分页目的,我需要它只考虑每个部分的类别计数。请参阅,由于某些产品来自同一类别,因此产品编号大于类别计数。

我认为我需要做的是计算页面循环之外的类别(或者woocommerce循环),然后根据发现实现页面循环。我是否应该以某种方式访问页面被查询的对象(工作区),并在循环之前找到信息?我就是搞不懂。

如果有人能在这件事上放点光,那就太好了。

代码语言:javascript
复制
    .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 '

';?>

您将在单独的选项卡中看到我的函数来构造类别:

代码语言:javascript
复制
/*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) . ''; 
}
EN

回答 1

WordPress Development用户

回答已采纳

发布于 2022-03-30 09:34:27

我解决了我的问题:

https://stackoverflow.com/questions/61622017/get-woocommerce-product-categories-that-contain-a-specific-product-brand/61624358#61624358

事实证明,对于我的需求来说,wp_query不是正确的选择。

票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/404102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档