Try this below, I will combine the two requests (message and page). Work for me - displaying all posts / pages paginated.
<?php
$paged = get_query_var('paged') ? get_query_var('paged') : 1;
$post_per_page = 5;
$firstQuery = new WP_Query('post_type=post');
$secondQuery = new WP_Query('post_type=page');
$post_ids = array_merge( $firstQuery, $secondQuery );
$query = new WP_Query(
array(
'post_type' => array('post', 'page'),
'post__in' => $post_ids,
'paged' => $paged,
'orderby' => 'date',
'order' => 'DESC',
'posts_per_page' => $post_per_page
)
);
$totalPosts = $firstQuery->post_count + $secondQuery->post_count;
if( $query->have_posts() ):
while( $query->have_posts() ): $query->the_post();
echo the_title()."</br>";
endwhile;
wp_reset_query();
endif;
$big = 999999999;
echo paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $totalPosts / $post_per_page,
) );
?>
New Solution - Change
Just edit the first and second request
<?php
global $wp_query;
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$post_per_page = 5;
$firstQuery = get_posts(array(
'posts_per_page' => -1,
'category_name' => get_query_var( 'category_name' ),
'post__in' => $sticky = get_option( 'sticky_posts' )
));
$secondQuery = get_posts(array(
'posts_per_page' => -1,
'category_name' => get_query_var( 'category_name' ),
'post__not_in' => get_option( 'sticky_posts' ),
));
$mergePosts = array_merge( $firstQuery, $secondQuery );
$postIds = array();
foreach( $mergePosts as $post ) {
$postIds[]=$post->ID;
}
$uniquePosts = array_unique($postIds);
$args = array(
'post_type' => 'any',
'post__in' => $uniquePosts,
'paged' => $paged,
'orderby' => 'date',
'order' => 'DESC',
'posts_per_page' => $post_per_page,
);
$the_query = new WP_Query($args);
if( $the_query->have_posts() ):
while( $the_query->have_posts() ): $the_query->the_post();
echo the_title()."</br>";
endwhile;
wp_reset_query();
endif;
$big = 999999999;
echo paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $the_query->max_num_pages
) );
?>
source
share