自定义POST类型档案页面中的分页错误

时间:2015-02-04 作者:Harry

我创建广告自定义帖子类型register_post_type( \'videos\', $args);和自定义分类法register_taxonomy( \'video_category_categorie\', \'videos\', $args ); Maximum number of post displayed is 2 per page. Via word press backend在存档视频中。php我编写用于显示特定分类法中的帖子(分类法项目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。实际上,在分类id 3中有5篇文章。所以正确的分页是1 2 3。

而且,当点击第4页时,该页没有显示任何帖子名称。

请帮忙

2 个回复
SO网友:Reigel

试试这个。。。

代替twentyfourteen_paging_nav();

具有

global $wp_query;
$temp_query = $wp_query;
$wp_query   = NULL;
$wp_query   = $loop;
twentyfourteen_paging_nav();
$wp_query = NULL;
$wp_query = $temp_query;

SO网友:TheDeadMedic

我经常看到这个问题。您应该永远不需要在存档页上运行自己的查询。它不仅在服务器上引入了不必要的负载,而且还把WordPress弄糊涂了,因为它不再知道你到底在查询什么。

相反,调整主查询以满足您的需要,并坚持while ( have_posts() ):

function wpse_177068_videos_per_page( $wp_query ) {
    if ( $wp_query->is_main_query() && $wp_query->is_tax( \'video_category_categorie\', 3 ) ) {
        $wp_query->set( \'posts_per_page\', 2 );
    }
}

add_action( \'pre_get_posts\', \'wpse_177068_videos_per_page\' );
将此挂钩添加到functions.php.

结束

相关推荐

Functions are causing errors

我在插件的PHP上声明一个函数。插件在每个帖子的顶部加载代码(帖子布局是插件的名称)。无法在/home/content/08/10290908/html/wp-content/plugins/post-layout/plugin.php(181):eval()\'d code:4)中重新声明vote\\u-up()(之前在/home/content/08/102908/html/wp-content/plugins/post-layout/plugin.php中声明)。php(181):第36行的eval

自定义POST类型档案页面中的分页错误 - 小码农CODE - 行之有效找到问题解决它

自定义POST类型档案页面中的分页错误

时间:2015-02-04 作者:Harry

我创建广告自定义帖子类型register_post_type( \'videos\', $args);和自定义分类法register_taxonomy( \'video_category_categorie\', \'videos\', $args ); Maximum number of post displayed is 2 per page. Via word press backend在存档视频中。php我编写用于显示特定分类法中的帖子(分类法项目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。实际上,在分类id 3中有5篇文章。所以正确的分页是1 2 3。

而且,当点击第4页时,该页没有显示任何帖子名称。

请帮忙

2 个回复
SO网友:Reigel

试试这个。。。

代替twentyfourteen_paging_nav();

具有

global $wp_query;
$temp_query = $wp_query;
$wp_query   = NULL;
$wp_query   = $loop;
twentyfourteen_paging_nav();
$wp_query = NULL;
$wp_query = $temp_query;

SO网友:TheDeadMedic

我经常看到这个问题。您应该永远不需要在存档页上运行自己的查询。它不仅在服务器上引入了不必要的负载,而且还把WordPress弄糊涂了,因为它不再知道你到底在查询什么。

相反,调整主查询以满足您的需要,并坚持while ( have_posts() ):

function wpse_177068_videos_per_page( $wp_query ) {
    if ( $wp_query->is_main_query() && $wp_query->is_tax( \'video_category_categorie\', 3 ) ) {
        $wp_query->set( \'posts_per_page\', 2 );
    }
}

add_action( \'pre_get_posts\', \'wpse_177068_videos_per_page\' );
将此挂钩添加到functions.php.

相关推荐

Ajax Filtering Pagination

我知道这是一个常见的问题,但我找不到解决办法。我在用户点击复选框时进行了ajax过滤。在用户单击分页之前,一切都正常。当然,我们现在使用的是管理ajax。php页面和分页链接不工作。这是代码。HTML复选框:<input type=\"checkbox\" id=\"telegram_chk\" checked> <input type=\"checkbox\" id=\"twitter_chk\" checked> <input type=\"checkbo