WooCommerce定制循环按名称而不是Slug

时间:2016-11-19 23:30:43

标签: php wordpress woocommerce categories wpml

我目前正在使用以下代码展示一个WooCommerce产品类别(活动)的产品:

String[] names = { "Zelma", "Clayton", "Casper", "Ihor", "Edwina" };
int[] severities = { 1, 2, 3, 1, 3 };
PatientList list;

list = new PatientList();
testPatientList(list, names, severities, 0);
}

public static void testPatientList(PatientList list, String[] names, int[] severities, int pos) {
 PatientList copy;

 if (pos < names.length) {
  list.add(names[pos], severities[pos]);
  copy = list.clone();

  copy.print();
  System.out.println("Admitting: " + copy.nextAdmission());
  System.out.println();

  testPatientList(list, names, severities, pos + 1);
  testPatientList(copy, names, severities, pos + 1);
  }
 }
}

是否可以按名称而不是slug或ID获取产品类别?

由于我使用的是翻译插件(WPML),因此每种语言都添加了slugs(例如“events_eng”)。

感谢。

1 个答案:

答案 0 :(得分:2)

您可以使用另一个技巧是获取WPML在类别slug中使用的语言扩展,然后将其添加到您的slug中,这样:

<?php 
    // Set here your category slug
    $cat_slug = 'events';

    // Get the current language
    $lang = explode("-", get_bloginfo('language'));

    // Adding the language extension to the slug
    $cat_slug .= '_' . $lang[0];

    $args = array( 'post_type' => 'product', 'product_cat' => $cat_slug);
    $loop = new WP_Query( $args );
    while ( $loop->have_posts() ) : $loop->the_post(); global $product;
?>

如果您在主要语言中没有类别slug中的语言扩展名,则可以在此代码中添加条件,以避免将其添加到此特定语言中。

此代码已经过测试,并且功能齐全。