两个定制帖子类型之间的共享定制分类

时间:2011-03-10 作者:José Pablo Orozco Marín

我有两种自定义帖子类型:事件和联系人:

http://acicafoc.josoroma.com/contactenos

http://acicafoc.josoroma.com/eventos

它们都使用自定义分类法:country

我刚刚创建了一个名为:taxonomy country的模板。php

但我需要两个单独的模板,一个用于使用国家的活动,另一个用于使用国家的联系人。例如,显示美国的所有事件或哥斯达黎加的所有联系人。

这是我所在国家的实际税收代码。php,但仅适用于使用国家/地区的活动。

<?php
/**
 * The template for displaying Countries Taxonomy.
 *
 */

get_header();


$term = get_term_by( \'slug\', get_query_var( \'term\' ), get_query_var( \'taxonomy\' ) );


//print_r($term);


$args = array();

$args[\'post_type\']  = \'event\';
$args[\'taxonomy\']   = $term->taxonomy;
$args[\'term\']   = $term->slug;


query_posts($args); 

?>
        <div id="container">
            <div id="content" role="main">

                <h1 class="page-title"><?php
                    printf( __( \'Archives: %s\', \'twentyten\' ), \'<span>\' . $term->name . \'</span>\' );
                ?></h1>
                <?php
                    $category_description = category_description();
                    if ( ! empty( $category_description ) )
                        echo \'<div class="archive-meta">\' . $category_description . \'</div>\';

                /* Run the loop for the category page to output the posts.
                 * If you want to overload this in a child theme then include a file
                 * called loop-category.php and that will be used instead.
                 */
                get_template_part( \'loop\', \'category\' );
                ?>

            </div><!-- #content -->
        </div><!-- #container -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>
提前谢谢。

2 个回复
最合适的回答,由SO网友:Bainternet 整理而成

您可以使用get\\u query\\u var(“post\\u type”)在args数组中设置post类型

$args[\'post_type\']  = get_query_var(\'post_type\');
还包括基于此的右循环部分,例如:

if (get_query_var(\'post_type\') == "event"){
   get_template_part( \'loop\', \'event\' );
}else{
   get_template_part( \'loop\', \'other\' );
}

SO网友:kaiser

你已经调查过$term-taxonomy?

在查询之前尝试以下操作:

echo \'<pre>\';
print_r($term-taxonomy);
echo \'</pre>\';
如果现在不尝试,我不知道确切的输出,但我猜它是一个数组,在这种情况下,您可以采用所需的分类法。

注意:您不需要指定$args = array(). 键入时已发生到数组的转换$args[] = \'\';

结束

相关推荐