我有一个区域列表(NA、EUW等)设置为子类别,父类为regions
. 我需要为我的帖子类型列出这些区域。
<?php
$posts = get_posts(array(
\'post_type\' => \'packages\',
\'category_name\' => \'NA\',
\'meta_key\' => \'package_order_id\',
\'orderby\' => \'meta_value_num\',
\'order\' => \'ASC\'
));
if ($posts)
{
foreach($posts as $post)
{
setup_postdata($post);
?>
。。
哪里category_name\' => \'NA\'
, 反而会是category_name\' => <?php regions[i] ?>,
. 这将在类别循环中。
我在另一个答案中的尝试只在所有类别中循环。
<?php
$categories = get_categories(
array( \'regions\' => $cat->cat_ID )
);
foreach ($categories as $c) {
var_dump($c);
}
?>
但我只需要在
regions
子类别名称的父类别。我该怎么做?
最合适的回答,由SO网友:Jacob Peattie 整理而成
您需要获取regions
分类,然后使用get_categories()
要获取将该ID作为其父级的所有类别,请执行以下操作:
$parent = get_category_by_slug( \'regions\' );
$regions = get_categories( array(
\'parent\' => $parent->term_id,
) );
foreach ( $regions as $region ) {
// Do stuff.
}
您是否考虑过为您的帖子类型创建一个“区域”自定义分类法?让类别像这样工作有点不寻常。它也很脆弱,因为它依赖于具有特定名称的类别。
如果这样做了,并将分类名称设置为region
, 你可以这样循环:
$regions = get_terms( array( \'taxonomy\' => \'region\' ) );
foreach ( $regions as $region ) {
// Do stuff.
}