使用自定义分类动态过滤帖子

时间:2011-12-03 作者:Kristian Hjelle

我目前正在尝试创建一个业务目录,用户可以通过以下方式过滤结果:

我正在为业务目录使用自定义帖子类型,并创建了两个自定义分类:

服务类型-像类别一样工作-像标签一样工作-我需要一个动态查询,让我的用户先选择一种服务类型,然后选择一个县,然后获得一个结果列表-或者反过来;他们首先选择一个县,然后选择一种服务。

这可能吗?还是必须对类别和子类别执行此操作?

1 个回复
SO网友:Joshua Abenazer

在模板中尝试此代码。确保用相应的slug替换post\\u类型和自定义分类法(service&county)。

    $page_link = get_permalink();
    $services = get_terms( \'service\' );
    $counties = get_terms( \'counties\' );

    $args = array();
    $args[\'post_type\'] = \'business\';
    $args[\'paged\'] = ( get_query_var( \'paged\' ) ) ? get_query_var( \'paged\' ) : 1;
    if ( isset( $_GET[\'service\'] ) ) {
        $args[\'service\'] = $_GET[\'service\'];
        $page_link = add_query_arg( \'service\', $_GET[\'service\'], $page_link );
    }
    if ( isset( $_GET[\'county\'] ) ) {
        $args[\'county\'] = $_GET[\'county\'];
        $page_link = add_query_arg( \'county\', $_GET[\'county\'], $page_link );
    }

    if ( is_array( $services ) ) {
        echo \'<ul>\';
        foreach ( $services as $service ) {
            echo \'<li><a href="\' . htmlentities( add_query_arg( \'service\', $service->slug, $page_link ) ) . \'">\' . $service->name . \'</a></li>\';
        }
        echo \'<li><a href="\' . htmlentities( remove_query_arg( \'service\', $page_link ) ) . \'">None</a></li>\';
        echo \'</ul>\';
    }

    if ( is_array( $counties ) ) {
        echo \'<ul>\';
        foreach ( $counties as $county ){
            echo \'<li><a href="\' . htmlentities( add_query_arg( \'county\', $county->slug, $page_link ) ) . \'">\' . $county->name . \'</a></li>\';
        }
        echo \'<li><a href="\' . htmlentities( remove_query_arg( \'county\', $page_link ) ) . \'">None</a></li>\';
        echo \'</ul>\';
    }

    query_posts( $args );
    if ( have_posts() ){
        while ( have_posts() ) {
            the_post();
            // Do Something
            // Pagination
        } 
    }

结束

相关推荐

Custom Taxonomy URL

我已经在这里阅读了几个小时的所有类似答案,但找不到任何足以满足我需求的基本答案。我有一个非层次化的自定义职位类型“库存”。我有一个自定义分类法“division”,它是库存类别我希望单个页面的永久链接URL为:sitename.com/division/postname 但它只是作为:sitename.com/postname 获取要在url中显示的库存类别(部门)的最简单方法是什么?为了澄清,我想用division所代表的类别名称替换“division”。非常感谢您的建议!更新时间: