【问题标题】:How to filter archive-{custom-post-type}.php by category in Wordpress?如何在 Wordpress 中按类别过滤 archive-{custom-post-type}.php?
【发布时间】:2012-06-12 20:29:30
【问题描述】:

我使用名为 Custom Post Type UI v0.7.1 的插件创建了一个名为“Portfolio”的自定义帖子类型。我为它创建了几个类别,例如徽标、包装等。

我需要使用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 之类的网址,但都没有奏效;它只显示所有投资组合项目,而不管类别。

Portfolio 自定义帖子类型启用了“Archive”和“Hierarchical”。

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

有什么想法吗?

【问题讨论】:

  • 不是一个真正的答案,但前 5 行应该组合在一起。像这样关闭和打开 php 标签是没有意义的。编辑:并且 endwhile 也应该与上面的行分组。

标签: php wordpress archive custom-post-type


【解决方案1】:

实际上我最终得到了它:

            <?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; ?>

【讨论】:

    【解决方案2】:

    我会像下面这样使用 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; ?>
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-01
      • 2012-06-19
      • 2011-10-29
      • 1970-01-01
      • 2017-06-27
      • 2017-06-12
      • 2012-07-12
      相关资源
      最近更新 更多