2016-07-02 6 views
1

Я не знаком с дизайном Wordpress, так как я сказал, что знаю немного PHP. Im пытается изменить мою тему, так что он будет остановить формирование страницы пагинация т.е. остановки страницы образующую -> page2-> page3 после определенного числа сообщений, которые были добавлены к страницеWordpress Stop Page Pagnitation

Мой вопрос

Поцарапав мою тему, я считаю, что это код, ответственный за создание 2-й страницы, 3-й страницы и т. Д.

//---------------------- Pagination --------------- 

function kriesi_pagination($pages = '', $range = 4) 
{ 
    $showitems = ($range)+1; 

    global $paged; 
    if(empty($paged)) $paged = 1; 

    if($pages == '') 
    { 
     global $wp_query; 
     $pages = $wp_query->max_num_pages; 
     if(!$pages) 
     { 
      $pages = 1; 
     } 
    } 

    if(1 != $pages) 
    { 
     echo "<div class='pagination'>"; 
     //if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<a href='".get_pagenum_link(1)."'> &laquo;</a>"; 
     if($paged > 1) echo "<a class='last' href='".get_pagenum_link($paged - 1)."'>PREVIOUS</a>"; 

     for ($i=1; $i <= $pages; $i++) 
     { 
      if (1 != $pages &&(!($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems)) 
      { 
       echo ($paged == $i)? "<span class='current'>".$i."</span>":"<a href='".get_pagenum_link($i)."' class='inactive' >".$i."</a>"; 
      } 
     } 

     if ($paged < $pages) echo "<a class='last' href='".get_pagenum_link($paged + 1)."'>NEXT</a>"; 
     //if ($paged < $pages-1 && $paged+$range-1 < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($pages)."'></a>"; 
     echo "</div>\n"; 
    } 
} 

То, что я пытался сделать

Я считаю, что переменная $range содержит число сообщений, прежде чем создавать вторую страницу, однако после изменения значения $range ничего не произошло ...

Комментируя код - все сообщения на странице 1 отображаются, но все сообщения после этого исчезают ...

Любой совет здесь? Я работаю с неправильным фрагментом кода?

+0

Это выглядит как функции вашей темы: http://www.kriesi.at/archives/how-to-build-a-wordpress-post-pagination-without-plugin – Quack

+0

То есть это !! Спасибо, что я прочитал это сейчас, единственная проблема заключается в том, что я не могу понять, как изменить параметр, который задает количество сообщений ... – Marilee

+0

'$ wp_query-> max_num_pages' –

ответ

1

Paged формируется до отображения страницы, поэтому код, который контролирует вывод номеров страниц, слишком поздний.

Вы не определили, является ли это пользовательский запрос cpt и т. Д., Поэтому я принимаю его стандартный список сообщений. Поэтому при необходимости измените, если нет. Это нужно войти в ваш файл функций.

add_action('pre_get_posts', 'all_posts', 1); 

function all_posts($query){ 

    $query->set('posts_per_page', -1); // return all posts change this to the number you want 
    $query->set('nopaging', true);//stop add rows... 
    $query->set('no_found_rows', true); // dont count the rows to populate total posts count 

}