查询具有自定义字段的产品类别

时间:2020-09-08 作者:user1348927

我正在尝试在wordpress上构建一个页面模板,该模板将显示选中自定义字段的列表和类别。

因此,分类法只是默认的woocommerce分类法product_cat 然后,我在product\\u cat分类法中有一个自定义字段,该字段是一个名为collectable

我的设置是主要类别

因此,例如,2个儿童类别具有勾选框collectable 设置为将值1添加到datbase中

所以我正在做一个页面,它将显示所有类别的收藏品选中。

$args = array(
    \'post-type\' => \'product\',
    \'taxonomy\' => \'product_cat\',
    \'hide_empty\' => 0
  );
  $c = get_categories($args);
  $c_keep = array();
  foreach($c as  $cat){
 if (get_field(\'collectable\', \'category_\'.$cat->term_id)) {
      $c_keep[] = $cat;
    }  
  }
  
  foreach($c_keep as $cat){
    echo $cat->name;
  }
但我没有得到任何回报。

我甚至把

print_r( $args );
但我仍然得到一个空白(页眉和页脚加载以及查询上方的文本)

有人能帮忙吗

******编辑*****

按照建议运行元查询

<?php

$terms = get_terms( 
        array(
            \'taxonomy\' => \'product_cat\',
            \'hide_empty\' => false,
            \'meta_key\' => \'collectable\',
            \'meta_value\' => \'1\',
    )
    );
$terms = get_terms( $args ); 

  foreach($terms as $cat){ ?>
<?php echo $cat->name; ?> <BR>

<?php
}
print_r( $terms );
?>
这只是买回了所有类别,无论它们是否具有mata\\U值

1 个回复
SO网友:user1348927

meta在分类中(因此我有标准、类别名称、slug、描述等,然后我在类别本身中添加了一个可收集的复选框,而不是帖子/产品)

我通过对所有子类别运行一个查询来解决这个问题,然后我在其中放入一个if语句,这样它只显示勾选了可收集框的类别。

(最后用于自定义字段的工具集)

$parent_id = 16;
$args = array(
        \'hierarchical\' => 1,
        \'show_option_none\' => \'\',
        \'hide_empty\' => 0, 
        \'parent\' => $parent_id,
        \'taxonomy\' => \'product_cat\'
    );
    $subcategories = get_categories($args);
   );
   foreach ($subcategories as $category) {
    
    $st_var = $category->to_array();
    $thumbnail_id =  types_render_termmeta("collectable",array("term_id" =>$st_var[\'term_id\']));   
    if ( $thumbnail_id ) {

          /// Put my html here, category name, image, link etc

    }
} 

相关推荐

Admin Theme customization

我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register