Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Archive.php是';t从一个类别对邮件进行排序_Php_Wordpress_Pagination_Wordpress Theming_Categories - Fatal编程技术网

Archive.php是';t从一个类别对邮件进行排序

Archive.php是';t从一个类别对邮件进行排序,php,wordpress,pagination,wordpress-theming,categories,Php,Wordpress,Pagination,Wordpress Theming,Categories,我的存档页面添加了数字分页功能,但它不会对正确的类别进行排序,而是显示所有类别的帖子。假设类别是香蕉(http://localhost/tkeblog/category/bananas/)我从香蕉、橘子和苹果的分类中得到帖子。此外,分页系统不显示带有thumbail的帖子,但它可以在我的index.php页面上运行。我在按类别筛选帖子时做了哪些错误操作 <?php if ( get_query_var('paged') ) { $paged = get_query_var('paged')

我的存档页面添加了数字分页功能,但它不会对正确的类别进行排序,而是显示所有类别的帖子。假设类别是香蕉(http://localhost/tkeblog/category/bananas/)我从香蕉、橘子和苹果的分类中得到帖子。此外,分页系统不显示带有thumbail的帖子,但它可以在我的index.php页面上运行。我在按类别筛选帖子时做了哪些错误操作

<?php
if ( get_query_var('paged') ) { $paged = get_query_var('paged'); }
elseif ( get_query_var('page') ) { $paged = get_query_var('page'); }
else { $paged = 1; }

query_posts(array(
    'post_type'      => 'post', // You can add a custom post type if you like
    'paged'          => $paged,
    'posts_per_page' => 5
));

if ( have_posts() ) : the_post(); ?>
<div class="blogitem a">


<?php while ( have_posts() ) : the_post(); ?>

    <?php get_template_part('catalog',get_post_format()); ?>

<?php endwhile; ?>

<div class="pagination">
    <?php my_pagination(); ?>
    </div>

</div>
 <?php else: ?>
<p>Sorry, no posts matched your criteria.</p>
 
<?php wp_reset_query(); ?>

<?php endif; ?>

抱歉,没有符合您标准的帖子


如果我们查看默认设置,我们可以看到归档模板只是使用默认循环来显示所有类别的所有帖子,而不是自定义查询

我相信这回答了你的问题

<?php
if( have_posts() ):
  while( have_posts() ): the_post();
    // ... template
  endwhile;
else:
    // ... fallback
endif; ?>

因为您使用的是“query_posts”(它有点覆盖url中的类别),所以还应该指定“category”参数。(1) Get category:应该使用默认查询,而不是构建查询。
<?php
add_action( 'pre_get_posts', function ( $query ) {
  if ( ! is_admin() && $query->is_archive() && $query->is_main_query() ) {
    if ( get_query_var( 'post_type' ) == 'post' ) {
      $query->set( 'post_type', array( 'post' ) );
      $query->set( 'posts_per_page', 12 );
      $query->set( 'orderby', array( 'date' ) );
      $query->set( 'order', array( 'ASC' ) );
    } else {
      $query->set( 'posts_per_page', 6 );
      $query->set( 'orderby', array( 'date' ) );
      $query->set( 'order', array( 'ASC' ) );
    };
  };
}; ?>