从产品类别和自定义meta_key对Woocommerce产品进行排序

evavienna

我使用自定义插件(和meta_key)成功按喜欢(计数)过滤了我所有的Wordpress帖子,这也使我可以过滤类别中最喜欢的帖子。我在自定义页面模板中显示(查询)结果。一切正常。

Like功能也可用于Woocommerce产品。但是到目前为止,我还无法建立一个页面,在该页面中,我对商品(post_type)进行分类的方式与我在帖子中所做的处理方式相同。我最接近的是在页面上显示最喜欢的帖子,但是类别的排序不会过滤帖子-它显示的内容与主页相同。类别列表和类别链接的url调用工作正常。

注: URL查询字符串“产品卡托”是一个自定义-使用至极使用该查询字符串和类别ID的AJAX过滤器插件的IM一样.../?product-cato=6,请不要混合起来wichtproduct_cat例如

这是我到目前为止提出的内容-从帖子的代码开始(直到工作正常)。任何想法如何解决这个问题?谢谢

查询(工作正常)

if (isset($_GET['category'])) {
    $args = array(
    'meta_key' => '_recoed',
    'meta_compare' => '>',
    'meta_value' => '0',
    'orderby' => 'meta_value_num',
    'order' => 'DESC',
    'category_name' => sanitize_text_field($_GET['category']),
    'paged' => $paged
    );
} 

 query_posts($args);

分类列表以过滤每个分类中的帖子(工作正常)

<?php $categories = get_categories();

foreach($categories as $category) { ?>
    <li>
        <a class="popular-categories" href="<?php echo get_permalink(); ?>?category=<?php echo $category->category_nicename; ?>"><?php echo $category->name; ?></a> 
    </li>
<?php } ?>

现在,Woocommerce查询和类别部分卡住了

产品查询post_type

    if (isset($_GET['product-cato'])) {
    $args = array(
    'meta_key' => '_recoed',
    'meta_compare' => '>',
    'meta_value' => '0',
    'post_type' => 'product',
    'orderby' => 'meta_value_num',
    'order' => 'DESC',
    'taxonomy' => sanitize_text_field($_GET['product_cat']),
    'paged' => $paged
);

query_posts($args);

分类列表以过滤每个商店类别中的职位

<?php
    $product_categories = get_terms( 'product_cat' );
    $count = count($product_categories);

    foreach ( $product_categories as $product_category ) { ?>
        <li>
            <a class="popular-categories" href="<?php echo get_permalink(); ?>?product-cato=<?php echo $product_category->term_id; ?>"><?php echo $product_category->name; ?></a>
        </li>
    } 
?>
LoicTheAztec

由于“产品类别”自定义分类法 'product_cat',因此请使用tax_query

因此,没有错:

'taxonomy' => sanitize_text_field($_GET['product_cat'])

…使用它(正确定义'field'参数)

'tax_query' => array( // the product category query
    array( 
        'taxonomy' => 'product_cat',
        'field'    => 'term_id', // (also 'name' or 'slug')  <==   <==   <==   <==   <== 
        'terms'    => sanitize_text_field($_GET['product-cato']),
    ),
),

还要检查sanitize_text_field($_GET['product_cat'])'product_cat'是正确的子弹,因为您也使用product-cato

如果sanitize_text_field($_GET['product_cat'])不是“ slug”产品类别,则您需要'field' => 'term_id',使用正确的字段类型('name''slug'进行更改

因此,您的代码应该是(正确定义'field'参数)

if (isset($_GET['product-cato'])) {
    query_posts( array(
        'meta_key' => '_recoed',
        'meta_compare' => '>',
        'meta_value' => '0',
        'orderby' => 'meta_value_num',
        'order' => 'DESC',
        'paged' => $paged,
        'post_type' => 'product',
        //'posts_per_page' => 20,
        'post_status' => 'publish',
        // The product category query
        'tax_query' => array( 
            array( 
                'taxonomy' => 'product_cat',
                'field'    => 'term_id', // (also 'name' or 'slug') <==   <==   <==   <==
                'terms'    => sanitize_text_field($_GET['product-cato']),
            ),
        ),
    ) );
}

它应该工作……

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Woocommerce中将自定义单一产品模板用于特定产品类别

从Woocommerce档案库中的自定义显示按钮中排除产品类别

基于Woocommerce中产品类别的条件自定义结帐字段

WooCommerce自定义简码产品类别下拉列表

在Woocommerce中为特定产品类别添加自定义按钮

通过主题自定义Woocommerce中的产品类别面包屑链接

产品类别的WooCommerce产品价格中的自定义小数

在WooCommerce中为特定产品类别自定义“添加到购物车”按钮

Woocommerce自定义产品类别下拉问题

从Woocommerce的自定义动态定价中排除产品类别

Woocommerce 3中按产品类别的自定义购物车项目计数

在Woocommerce中显示基于自定义文本的产品类别订单商品名称

根据Woocommerce中的运输区域和产品类别显示自定义消息

根据Woocommerce中的产品类别添加自定义结帐字段

在自定义家庭和产品类别档案中显示WooCommerce产品属性

根据产品类别自定义购物车总计和结帐总计文本

在WooCommerce中将产品类别和标签术语作为meta关键字获取

基于WooCommerce中产品类别的自定义“缺货”文本

在Woocommerce商店和产品类别页面上显示高级自定义字段

在WooCommerce的末尾对特定产品类别购物车项目进行排序

根据WooCommerce结帐页面上的产品类别应用自定义数量参数

产品类别内的“高级自定义字段中继器”(woocommerce)

在 WooCommerce 中输出特定产品类别的自定义短代码

获取 WooCommerce 中顶级产品类别的自定义数组

WooCommerce 中特定产品类别的自定义条款和条件复选框

如何在“继续结帐”按钮上添加自定义 URL,特定产品类别 [WooCommerce]

自定义特定 WooCommerce 产品类别上的“添加到购物车”按钮

在 WooCommerce 循环产品标题后显示来自产品类别的自定义字段

根据 WooCommerce 电子邮件通知中的产品类别添加自定义文本“每个项目”