我是wordpress的新手,有麻烦需要你的帮助。
我编写了一个函数来以网格样式显示最近的帖子,但分页有问题。当我单击第2页或第3页时,url会更改,但内容不会更改。
这是我的显示代码
<?
global $wp_query;
$args=array(
\'post_type\' => \'post\',
\'post_status\' => \'publish\',
\'posts_per_page\' => 20
);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
$i = 0;
while ($my_query->have_posts()) : $my_query->the_post();
// modified to work with 3 columns
// output an open <div>
if($i % 4 == 0) { ?>
这是我的分页函数
function bootstrap_four_get_posts_pagination( $args = \'\' ) {
全球$wp_查询$分页=“”;
如果($GLOBALS[\'wp\\u query\']->max\\u num\\u pages>1):
$defaults = array(
\'total\' => isset( $wp_query->max_num_pages ) ? $wp_query->max_num_pages : 1,
\'current\' => get_query_var( \'paged\' ) ? intval( get_query_var( \'paged\' ) ) : 1,
\'type\' => \'array\',
\'prev_text\' => \'«\',
\'next_text\' => \'»\',
);
$params = wp_parse_args( $args, $defaults );
$paginate = paginate_links( $params );
if( $paginate ) :
$pagination .= "<ul class=\'pagination\'>";
foreach( $paginate as $page ) :
if( strpos( $page, \'current\' ) ) :
$pagination .= "<li class=\'active\'>$page</li>";
else :
$pagination .= "<li>$page</li>";
endif;
endforeach;
$pagination .= "</ul>";
endif;
endif;
返回$分页;}
我坚持了两天,也许你们中的一些人可以帮助我。
非常感谢。
最合适的回答,由SO网友:bagpipper 整理而成
这是因为您必须更改查询,还必须添加
\'paged\' => get_query_var( \'paged\' )
因此,您的新查询应该如下所示
$args=array(
\'post_type\' => \'post\',
\'paged\' => get_query_var( \'paged\' ),// add this line
\'post_status\' => \'publish\',
\'posts_per_page\' => 20
);
有关信息,请查看
WP_QUERY Class