在类别交集页面上查找类别ID

时间:2013-03-10 作者:David

我使用类别交叉页让用户能够按类别过滤帖子。

E、 g。http://freemapsalgarve.com/category/destinations/alvor+bars-pubs/

这里,用户正在过滤“目的地”的“alvor”和“bars pubs”子类别。

我希望能够获取页面上正在筛选的类别的id,以便向用户显示它们,但我只能获取第一个类别。

$this_cat = get_category(get_query_var(\'cat\'));

...返回本例中的第一个类别“alvor”。

有人知道我是如何在这里找到这两个类别的过滤的吗?

2 个回复
SO网友:kaiser

如果您在循环中,只需使用get_categories().

SO网友:kaiser

如果你是not in the loop 要获取查询的术语,则有原生API函数以及WP_QueryWP_Tax_Query 对象方法可用(例如get_queried_object()). 您必须直接访问它。

示例tax_query 看起来(由OP提供):

["tax_query"]=>
  object(WP_Tax_Query)#282 (2) {
    ["queries"]=>
    array(2) {
      [0]=>
      array(5) {
        ["taxonomy"]=>
        string(8) "category"
        ["terms"]=>
        array(1) {
          [0]=>
          string(5) "alvor"
        }
        ["include_children"]=>
        bool(true)
        ["field"]=>
        string(4) "slug"
        ["operator"]=>
        string(2) "IN"
      }
      [1]=>
      array(5) {
        ["taxonomy"]=>
        string(8) "category"
现在我们需要访问它$wp_query 对象我们将使用一个小插件来实现这一点,该插件将输出必要的部分。

<?php
defined( \'ABSPATH\' ) or exit;
/* Plugin Name: (#90230) Get Taxonomy terms */
add_filter( \'parse_query\', \'wpse90230_parse_query\' );
function wpse90230_parse_query( $wp_query )
{
    // This is the tax_query/WP_Tax_Query object
    $tax_query = $wp_query->tax_query; 

    // Now we get the relation `AND`/`OR` so we have a possibilty to the tell the user
    // whether we are showing them a "match" or a "filtered" result
    $relation = \'AND\' === $tax_query->relation ? "filtered" : "matched";

    // Then we\'re extracting the terms.
    // This gives us the terms as array sorted by taxonomy.
    foreach ( $tax_query->queries as $tax_query )
        $terms[ $tax_query["taxonomy"] ] = $tax_query["terms"];

    // Now we can loop through them:
    printf( \'You are viewing %s\', get_post_type() );
    foreach ( $terms as $taxonomy => $terms )
        printf(
             \'%s: %s\'
            ,get_taxonomy( $taxonomy )->label
            ,join( ",", $terms )
        );
}

结束

相关推荐

Sort post's categories by ID

我有一个博客,其中几个帖子的类别必须先输出,然后再输出其他类别。与其他类别相比,这些类别的ID较低。我正在使用get_the_category_list 但它并没有像我预期的那样工作。这让我很困惑,因为我记得有一个主题做得很好。有人能给我指出正确的方向吗?谢谢<?php get_the_category_list( array( \'orderby\' => \'ID\', \'order\' => \'ASC\' ) ); ?>&