2016-12-30 1 views
0

Я пытаюсь сделать собственный запрос интегрированным с плагином для сортировки сообщений.wp paginate_links и запросы vars не работают Wordpress

Вот код.

index.php

$view =$_GET["sort"]; 
if($view == "views"){ 
    if (have_posts()) : 
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
    $args = array('post_type' => 'post', 'meta_key' => '_kksr_avg', 'orderby' => 'meta_value', 'order' => 'desc', 'paged' => $paged, 'posts_per_page' => 5); 
    $query = new WP_Query($args); 

    while ($query->have_posts()) : $query->the_post(); 
     // code for display posts 
    endwhile; 

    if (function_exists(custom_pagination)) : 
     custom_pagination($query->max_num_pages,"",$paged); 
     wp_reset_postdata(); 
    endif; 
    endif; 
} 

А вот functions.php код.

function custom_pagination($numpages = '', $pagerange = '', $paged='') { 
    if (empty($pagerange)) { 
    $pagerange = 2; 
    } 

    global $paged; 
    if (empty($paged)) { 
    $paged = 1; 
    } 
    if ($numpages == '') { 
    global $wp_query; 
    $numpages = $wp_query->max_num_pages; 
    if(!$numpages) { 
     $numpages = 1; 
    } 
    } 
    $pagination_args = array(
    'base'   => get_pagenum_link(1) . '%_%', 
    'format'   => 'page/%#%', 
    'total'   => $numpages, 
    'current'   => $paged, 
    'show_all'  => False, 
    'end_size'  => 1, 
    'mid_size'  => $pagerange, 
    'prev_next'  => True, 
    'prev_text'  => __('«'), 
    'next_text'  => __('»'), 
    'type'   => 'plain', 
    'add_args'  => false, 
    'add_fragment' => '' 
); 
    $paginate_links = paginate_links($pagination_args); 
    if ($paginate_links) { 
    echo "<nav class='custom-pagination'>"; 
    echo "<span class='page-numbers page-num'>Page " . $paged . " of " . $numpages . "</span> "; 
    echo $paginate_links; 
    echo "</nav>"; 
    } 
} 

Проблема связана с ссылками на страницы. конфликт с строкой запроса.

domain.com/?sort=views -> для первой страницы

domain.com/?sort=viewspage/2 -> для сек. страница

Это не работает.

Есть ли решение исправить это?

ответ

0

Вам не нужно использовать любой плагин для сортировки ниже Im размещения вам простой код, используя IsSet

<?php 
$orderby = 'date'; 
$order = isset($_REQUEST['sort']) ? trim($_REQUEST['sort']) : null; 
if(isset($_GET['sort']) && !empty($_GET['sort'])) { 
    switch($order) 
    { 
     case 'views' : $meta_key = '_kksr_avg'; 
           $orderby = 'meta_value_num'; 
      break; 

     case 'newest' : $meta_key = 'post_views_count'; 
            $orderby = 'date'; 
      break; 
    } 
} 
$args = array(
'posts_per_page' => 20, 
'meta_key' => $meta_key, 
'orderby' => $orderby, 
'paged' => (get_query_var('paged') ? get_query_var('paged') : 1),); 
query_posts($args); ?> 
<?php if (have_posts()) : ?> 
<?php while (have_posts()) : the_post(); ?> 

// code for display posts 

<?php 

endif; 

endwhile; 

else : 

endif; 

custom_pagination($query->max_num_pages,"",$paged); 

wp_reset_query(); 

?> 
Смежные вопросы