定制PT、Taxonomys和WordPress查询

时间:2012-04-23 作者:Tyler

好吧,我对wordpress有一个问题,这几天一直让我抓狂。

我有一个名为“帮助热线”的自定义帖子类型。该帖子类型有13个类别,其中一些类别有子类别。我还有5个自定义字段。

当我在帮助热线下创建帖子时,我会将其分配到与之相关的任何类别(可以是多个)

这就是我感到非常困惑的地方。

我有一个名为“页面帮助”的页面,该页面正在使用

<?php wp_list_categories(\'depth=1&title_li=\'); ?>
显示顶级类别。

当您单击其中一个类别时,我假设它正在加载类别。php,它有以下代码来显示我刚才单击的父类别的子类别。

                            <?php  
                                $categories = get_categories(\'hide_empty=0\');  
                                foreach ($categories as $category) : 
                                    query_posts(\'post_type=help-line&showposts=2&cat=\'.$category->cat_ID); 
                                    while(have_posts()){
                                        the_post(); 
                                        ?>

                                        <div class="height">
                                            <div class="fourcol">
                                                <p class="business"><?php the_field(\'helpline_name\'); ?></p>
                                                <p><?php the_field(\'helpline_address\'); ?></p>
                                            </div>
                                            <div class="fivecol">
                                                <p class="phone"><?php the_field(\'helpline_phone_number\'); ?></p>
                                            </div>                      
                                            <div class="threecol last">
                                                <ul>
                                                    <li><a href="" class="tiptip web" title="<?php the_field(\'helpline_name\'); ?>" target="_blank"><?php the_field(\'helpline_name\'); ?></a></li>
                                                    <li><a href="" class="tiptip comments" title="read comments from others" target="_blank"><?php the_field(\'helpline_comments\'); ?></a></li>
                                                    <li><a href="mailto:<?php the_field(\'helpline_email\'); ?>" class="tiptip email" title="email us your problem"><?php the_field(\'helpline_email\'); ?></a></li>
                                                </ul>
                                            </div>
                                        </div><!-- end test height -->

                            <?php     }
                            endforeach; ?> 
但无论我点击哪个父类别,它都会显示相同的帖子。

整个事情需要完全动态显示,当我添加一个新类别时,它将自动显示。

谁能帮帮我,我会很高兴的!!!:(

提前谢谢。

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

默认情况下,类别仅显示帖子,标签也一样。自定义分类法不受此限制,可以通过过滤器覆盖此限制。

如果你把它放到你的函数中。php,然后是类型为help-line 将显示在列表中。

// before we grab the posts in a query
add_filter(\'pre_get_posts\', \'wpse49960_query_post_type\');

function wpse49960_query_post_type($query) {
    // if it\'s a category/tag archive, and there are no \'suppress_filters\'
    if( is_category() || is_tag() && empty( $query->query_vars[\'suppress_filters\'] ) ) {
        // then set the \'post_type\' query var so that it includes our custom post type, not just \'post\'
        $query->set( \'post_type\', array(
            \'post\', \'help-line\',\'nav_menu_item\'
        ));
        return $query;
    }
}
此外,对于wordpress加载的模板,请参见此处:

http://codex.wordpress.org/Template_Hierarchy

结束

相关推荐

Thesis Theme Custom Loop

我正在使用论文主题构建一个网站,并使用论文自定义循环API和自定义WP\\U查询。当我在单页上执行此操作时,它不会显示评论表单。如何在单个帖子页面上添加评论表单