Задать вопрос
@zeni1agent

Почему пагинацыя не работает внутри шордкода?

Мне нужно вывести посты с помощью шордкода в определенном месте
// Посты пользователя
add_shortcode ('test','fan'); 	
function fan(){
if ( get_query_var('paged') ) $paged = get_query_var('paged');
elseif ( get_query_var('page') ) $paged = get_query_var('page');
else $paged = 1;	
$html.='<div class="gt">'; 
$args = array(
	'paged' => $paged,   
	'posts_per_page' =>  5, 	 
	'post_type' => 'post'  
);
$custom_query = new WP_Query( $args );
if ( $custom_query->have_posts() ) { 
  while( $custom_query->have_posts() ) {	$custom_query->the_post();
// Блоки новостей
get_template_part( 'news', get_post_format() );
}  
$html.='</div>';
 if ($custom_query->max_num_pages > 1) {  
      $orig_query = $wp_query;
      $wp_query = $custom_query;
		$html.='<div class="pagination">';
 }  
	   the_posts_pagination(array(	  
        'prev_text' => ('←'),  
        'next_text' => ('→'),  
        'end_size'  => 1, 
        'mid_size'  => 2  
      ));   
	  	$html.='</div>';
 }  
	$wp_query = $orig_query;  
 
  }
  wp_reset_postdata();  
 }  else {
	 get_template_part( '404', get_post_format() ); 
	$html.='</div>';
 }  

$html.='</div>';
return $html ;
}


Но почему то внутри него все работает нормально кроме пагинаций
Она почему то не выводится в чем может быть причина и как это исправить?
  • Вопрос задан
  • 37 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@zeni1agent Автор вопроса
Я нашел ответ на свой вопрос
https://stackoverflow.com/questions/11430392/wordp...

if ( get_query_var('paged') ) $paged = get_query_var('paged');
    elseif ( get_query_var('page') ) $paged = get_query_var('page');
    else $paged = 1;

    $q = new WP_Query(  array ( 'posts_per_page' => 5, 'post_type' => 'post', order => 'ASC', 'paged' => $paged  ) );

    $list = ' ';

    while ( $q->have_posts() ) { $q->the_post();
      $list .= '<div class="listing-view clearfix">'. get_the_title() . '</div>';
    }

	  $big = 999999999; // need an unlikely integer
	echo paginate_links( array(
	   'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
	   'format' => '?paged=%#%',
	   'current' => max( 1, get_query_var('paged') ),
	   'total' => $q->max_num_pages //$q is your custom query
	 ) );

    wp_reset_query();

    return 
    '<div class="listings clearfix">' 
    . $list 
    . '<div class="nav-previous">' . next_posts_link( __( '<span class="meta-nav">&larr;</span> Older posts', 'stratford_wp' ) ) . '</div>'
    . '<div class="nav-next">' . previous_posts_link( __( 'Newer posts <span class="meta-nav">&rarr;</span>', 'stratford_wp' ) ) . '</div>'
    . '</div>';
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы