【问题标题】:Custom post types displaying all category posts instead of showing posts only from specific category自定义帖子类型显示所有类别帖子,而不是仅显示特定类别的帖子
【发布时间】:2013-10-21 08:13:22
【问题描述】:

我遇到了自定义帖子类型类别显示的问题。 我为评论网站创建了自定义帖子类型 我想在不同的标签中显示不同的类别 但是当我在菜单中放置任何类别的评论时,它会显示所有评论 而不是显示特定类别的评论 例如: 我在评论中创建了 2 个类别 a) 游戏 b) 软件 每当我选择游戏类别时,它也会显示来自软件类别的帖子。

我在博客文章类别方面遇到了同样的问题,但我使用代码解决了这个问题 在我的 category.php 文件中

 $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
         $cat_id = get_cat_ID( single_cat_title(null, false) );
                 query_posts(array(
        'post_type'      => 'post',
        'paged'          => $paged,
        'cat'=>$cat_id,

        ));

我已经为自定义帖子类型创建了 taxonomy.php 文件

<?php $mypost = array( 'post_type' => 'cpreviews','paged' => $paged);
$loop = new WP_Query( $mypost ); ?>

任何人都可以帮助我们了解我们需要做什么来显示帖子 根据自定义帖子类型的类别?

更新了 TAXONOMY.PHP 中的代码,但仍有一些问题:

我已经把上面taxonomy.php下的代码改成了

<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
          //$currentTerm = $_GET[ 'term' ]; 
          $cat_id = get_cat_ID( single_cat_title(null, false) );
          $mypost = array('post_type' => 'cptreviews',
                      'paged' => $paged,
                      'tax_query' => array(
                            array(
                                'taxonomy' => 'product_reviews_product_category',
                                'terms' => (''),
                                'field' => 'slug',
                                'name' =>'Product Category',
                                )
                            )
                        );
$loop = new WP_Query( $mypost ); ?>

现在,每当我像这样将类别放入“条款”=>(“孩子”)时,它只会显示该类别下的所有帖子。但我想动态地采用“条款价值”。

【问题讨论】:

    标签: php wordpress categories custom-post-type


    【解决方案1】:

    试试这个:

    <?php
    $type = 'cpreviews';
    $args=array(
      'post_type' => $type,
      'post_status' => 'publish',
      'posts_per_page' => -1,
      'caller_get_posts'=> 1
    );
    $my_query = null;
    $my_query = new WP_Query($args);
    if( $my_query->have_posts() ) {
      while ($my_query->have_posts()) : $my_query->the_post(); ?>
        <p><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></p>
        <?php
      endwhile;
    }
    wp_reset_query();  // Restore global post data stomped by the_post().
    ?>
    

    【讨论】:

    • 感谢 Kunal 的帮助,但它再次显示了该 cpreviews 帖子类型下的所有帖子,而与类别无关。我需要显示不同的类别。是否有任何选项可以像我在 category.php 中那样调用自定义帖子类型类别?
    • 你想要什么..?完全...类别或特定类别的帖子.../?
    • 特定类别的帖子。我想为不同的类别创建不同的菜单,以便在这些类别下显示相关的帖子。现在所有帖子都显示在每个类别下。
    • 你有没有试过上面的答案。那是显示特定类别的帖子。你的类别名称是什么?这些是默认的 wordpress 类别还是您创建了自定义分类法?
    • 是的,我已经尝试过上面的答案。它显示了每个类别中的所有帖子。我有 2 个博客文件,我正在使用默认的 category.php,它非常适合自定义帖子类型(评论)我正在使用 taxonomy.php,但它显示了所有帖子。因此我更改了代码,您可以在我的问题下的已更改代码下看到。每当我将类别放在“术语”=>(“”)中时,它都会显示该确切类别的帖子。假设我有“儿童”类别并输入“条款”=>(“儿童”),它只显示儿童的所有帖子。但由于它是主题,我希望代码动态获取该(类别)值......我们该怎么做?
    【解决方案2】:

    假设您有自定义帖子类型:cpReviews --- 自定义分类:RevCategories --- 创建新评论帖子并从 RevCategories 中选择类别。查询 cpReviews 肯定会显示所有帖子,你需要做一些这样的事情 -----

    query_posts(array(
            'post_type' =>'cpreviews', //Custom_Post_TYpe
            'showposts' => $limit,  
            'RevCategories' => 'Games',));  //Custom Post Type TAxonomy (can use page name here get_query_var('pagename'); for dynamic content
    while (have_posts()): the_post(); global $post; echo the_title(); endwhile;           
    

    【讨论】:

      【解决方案3】:

      我已经通过创建 taxonomy-{taxonomy}.php 文件并删除了税务查询代码解决了这个问题。它会自动采用给定的类别。谢谢大家的帮助

      【讨论】:

        【解决方案4】:

        这将解决此问题。

        $args = array(
        'post_type'=> 'post',
        'cat' => 'Games'
        );              
        
        $the_query = new WP_Query( $args );
        if($the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); 
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-10-03
          • 1970-01-01
          • 1970-01-01
          • 2015-11-18
          相关资源
          最近更新 更多