Php 每页WordPress帖子(存档)

Php 每页WordPress帖子(存档),php,custom-post-type,wordpress,Php,Custom Post Type,Wordpress,我有一个自定义的帖子类型,并希望更改每页的帖子数量。我使用以下代码显示/限制帖子: $args = array( 'post_type' => 'movie', 'posts_per_page' => 3, 'tax_query' => array( array( 'taxonomy' => $wp_query->queried_object->taxo

我有一个自定义的帖子类型,并希望更改每页的帖子数量。我使用以下代码显示/限制帖子:

    $args = array(
        'post_type' => 'movie',
        'posts_per_page' => 3,
        'tax_query' => array(
            array(
              'taxonomy' => $wp_query->queried_object->taxonomy,
              'field' => 'slug',
              'terms' => $wp_query->queried_object->slug,
            )
        ),
        'paged' => get_query_var('paged') ? get_query_var('paged') : 1
    );
    query_posts( $args );
这一次,我有20篇此类文章,以及wordpress admin settings/read中每页的默认文章。。。设置为10

如果我调用没有页面的url,它会显示3篇文章;如果我调用带有页面/2/的url,它会显示3篇文章;但是如果我调用带有页面/3/的页面,它会显示没有找到任何内容

我不会更改管理员中帖子的默认值-有人有想法吗

注意:为了调试,我将显示$wp\u query->post\u count;-这使用默认的管理职位每页-10


加载页面时,它将在调用模板文件archive.php之前进行查询

第一个查询将使用WordPress中设置的默认值;即每页10篇文章。听上去,您正在archive.php中运行第二个“query_posts”调用,但听起来好像是在运行了相应的检查之后

为您提供两种可能的解决方案:

使用每个页面的帖子修改第一个查询

add_filter( 'pre_get_posts', 'modify_movie_query' );

function modify_movie_query( $wp_query ) {
    if( $wp_query->query_vars['post_type'] != 'movie' ) return;
    $wp_query->query_vars['posts_per_page'] = 3;
}
因为您已经修改了对$wp_查询的引用,所以不需要返回它

在archive.php模板顶部运行query_posts调用
选项1是我推荐的—它是最有效、最合适的。

加载页面时,它将在调用模板文件archive.php之前执行查询

第一个查询将使用WordPress中设置的默认值;即每页10篇文章。听上去,您正在archive.php中运行第二个“query_posts”调用,但听起来好像是在运行了相应的检查之后

为您提供两种可能的解决方案:

使用每个页面的帖子修改第一个查询

add_filter( 'pre_get_posts', 'modify_movie_query' );

function modify_movie_query( $wp_query ) {
    if( $wp_query->query_vars['post_type'] != 'movie' ) return;
    $wp_query->query_vars['posts_per_page'] = 3;
}
因为您已经修改了对$wp_查询的引用,所以不需要返回它

在archive.php模板顶部运行query_posts调用
选项1是我推荐的—它是最有效、最合适的。

如果存档页面用于自定义分类法,则批准的答案实际上不起作用。在这种情况下,您可能需要使用以下选项:

add_filter( 'pre_get_posts', 'modify_movie_query' );

function modify_movie_query( $wp_query ) {
  if(is_tax('movie-category')){
    $wp_query->query_vars['posts_per_page'] = 10;
  }
  return $wp_query
}

如果归档页面用于自定义分类法,则批准的答案实际上不起作用。在这种情况下,您可能需要使用以下选项:

add_filter( 'pre_get_posts', 'modify_movie_query' );

function modify_movie_query( $wp_query ) {
  if(is_tax('movie-category')){
    $wp_query->query_vars['posts_per_page'] = 10;
  }
  return $wp_query
}
如果删除tax_查询条件,会发生什么?那么它能找到20个帖子吗?当然已分页如果删除税务查询条件,会发生什么?那么它能找到20个帖子吗?当然可以