【问题标题】:How get posts from a subcategory of a category by name?如何按名称从类别的子类别中获取帖子?
【发布时间】:2015-04-19 20:02:20
【问题描述】:

我正在尝试创建已定义类别的子类别模板。 例如,对于每个人,我想检查他的子类别Photos 是否存在并获取此帖子。

这是我的类别树:

— Category Sessions
— — Subcategory Session 2015
— — — Subcategory Photos
— — — Subcategory ...
— — — Subcategory Videos
— — Subcategory Session 2014
— — — Subcategory Scores
— — Subcategory Session 2013
— — — Subcategory Photos
— — — Subcategory ...
— — — Subcategory Videos

如果会话类别的子类别Photos存在:

我的想法是有一个查询,例如:

$wp_query = new WP_query(... Session 20XX/Photos ...&showposts=20);

请问有什么办法吗?

【问题讨论】:

    标签: php wordpress categories


    【解决方案1】:

    我不知道有一种整洁、干净的方法。以下应该可以工作,但是未经测试的代码 - 如果有任何问题,请评论。将其包装在一个函数中会导致整体代码更简洁。

    $cat_args = array(
        'parent'                 => get_cat_ID( $year_cat_name ),
        'orderby'                  => 'name',
        'order'                    => 'DESC',
    ); 
    
    $categories = get_categories($cat_args); 
    foreach ($categories as $category) {
      if ($category->cat_name == 'Photos'){
        $wp_query = new WP_query(array('cat' => $category->cat_ID));
        // ...
        break;
      };
    }
    

    【讨论】:

    • 谢谢@enigma!好方法
    【解决方案2】:

    感谢@M Haseeb

    // Getting Parent ID
    $parent = get_term_by( 'name', 'Session 2015', 'category');
    
    // Checking if SubCategory Exist. 
    $term = term_exists('Photos', 'category', $parent->term_id);
    
    //if Exist Do the query
    if ($term !== 0 && $term !== null) {
      $query = new WP_Query( 'cat='.$term['term_id'] );
    }
    

    参考资料:

    【讨论】:

    • 啊,这样好多了
    猜你喜欢
    • 1970-01-01
    • 2013-06-22
    • 2021-07-25
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2012-08-08
    相关资源
    最近更新 更多