自定义 post 类型存档页面中的分页错误
Pagination fault in custom post type archive page
我创建广告自定义 post 类型 register_post_type( 'videos', $args);
和自定义分类 register_taxonomy( 'video_category_categorie', 'videos', $args );
每页最多 post 显示 2 个。通过 word press 后端
在 存档视频中。 php 我写了用于显示来自特定分类的 post(分类项 ID 为 3)$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array( 'post_type' => 'videos','paged' => $paged,'tax_query' => array(
array(
'taxonomy' => 'video_category_categorie',
'field' => 'term_id',
'terms' => 3)
));
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
echo get_the_title().'<br>';
endwhile;
twentyfourteen_paging_nav();
现在我得到了正确的结果,只显示了来自分类 id 3 的 pst。
但是分页不正确。它显示 1 2 3 4 。实际上有 5 post 在分类 id 3 中。所以正确的分页是 1 2 3 .
而且当点击第 4 个页面时页面没有显示任何 post 名称。
请帮忙
如果您查看 the source for twentyfourteen_paging_nav()
,您会发现它作用于 $GLOBALS['wp_query']
,而不是作用于您的自定义循环查询。
如果您想继续使用 twentyfourteen_paging_nav()
,您需要使用标准循环,并修改 query_posts
以更改全局 wp_query
对象而不是您的 $loop
,它是 WP_Query
.
的单独实例
在您的情况下,这意味着更改行:
$loop = new WP_Query( $args );
至:
query_posts ( $args );
并从其余代码中删除 $loop->
。
如果您出于任何原因不能这样做,您需要切换到另一个 Wordpress pagination function
我创建广告自定义 post 类型 register_post_type( 'videos', $args);
和自定义分类 register_taxonomy( 'video_category_categorie', 'videos', $args );
每页最多 post 显示 2 个。通过 word press 后端
在 存档视频中。 php 我写了用于显示来自特定分类的 post(分类项 ID 为 3)$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array( 'post_type' => 'videos','paged' => $paged,'tax_query' => array(
array(
'taxonomy' => 'video_category_categorie',
'field' => 'term_id',
'terms' => 3)
));
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
echo get_the_title().'<br>';
endwhile;
twentyfourteen_paging_nav();
现在我得到了正确的结果,只显示了来自分类 id 3 的 pst。 但是分页不正确。它显示 1 2 3 4 。实际上有 5 post 在分类 id 3 中。所以正确的分页是 1 2 3 .
而且当点击第 4 个页面时页面没有显示任何 post 名称。
请帮忙
如果您查看 the source for twentyfourteen_paging_nav()
,您会发现它作用于 $GLOBALS['wp_query']
,而不是作用于您的自定义循环查询。
如果您想继续使用 twentyfourteen_paging_nav()
,您需要使用标准循环,并修改 query_posts
以更改全局 wp_query
对象而不是您的 $loop
,它是 WP_Query
.
在您的情况下,这意味着更改行:
$loop = new WP_Query( $args );
至:
query_posts ( $args );
并从其余代码中删除 $loop->
。
如果您出于任何原因不能这样做,您需要切换到另一个 Wordpress pagination function