如何在Wordpress中按类别过滤archive- {custom-post-type} .php?

时间:2012-06-08 19:01:13

标签: php wordpress archive custom-post-type

我创建了一个名为" Portfolio,"的自定义帖子类型。使用名为自定义帖子类型UI v0.7.1 的插件。我已经为它创建了几个类别,例如Logos,Packaging等。

我需要使用archive.php按类别进行过滤。

现在我有一个包含此代码的archive-portfolio.php

<?php $wp_query = null; $wp_query = $temp;?>
<?php $temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query(); ?>
<?php $wp_query->query("post_type=portfolio&". $catinclude ."&paged=".$paged.'&showposts=20'); ?>

<ul>
    <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
        echo '<li><a href="'; the_permalink(); echo '">';
        echo '<strong>'; the_title();
        echo '</strong>';
        echo '</a></li>';
    ?>
    <?php endwhile; ?>
</ul>

我尝试过使用/?category_name=logos/?cat=logos等网址,但这些网址都没有效果;它只显示所有投资组合项目,无论其类别如何。

投资组合自定义帖子类型包含&#34; 存档&#34;和&#34; 分层&#34;启用。

对于内置分类法,它也启用了类别和标记。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我会使用如下所示的query_posts,你也可以简化代码:

<?php query_posts( array( 'post_type' => 'portfolio', 'showposts' => 10, 'orderby' => 'date', 'order' => 'desc')); ?>

<ul>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <li>
         <a href="<?php the_permalink();?>">
             <strong><?php the_title(); ?></strong>
         </a>
    </li>
<?php endwhile; ?>
</ul>
<?php endif; ?>

您可以在query_posts中找到WordPress Codex接受的参数。

答案 1 :(得分:0)

我实际上最终得到了它:

            <?php 
            $wp_query = null; $wp_query = $temp;
            $temp = $wp_query;
            $wp_query= null;
            $wp_query = new WP_Query();
            $wp_query->query("post_type=portfolio&category_name=" . $_GET["category"] . "&". $catinclude ."&paged=".$paged.'&showposts=20'); 
            if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
            ...
            <?php endwhile; ?>