2010-07-05 13 views
0

У меня есть страница Wordpress, которая показывает последние новости. Я хочу постраничное эти новости, и это мой код:Wordpress pagination

<?php 
query_posts('posts_per_page=5'); 
?> 
<?php 
while (have_posts()): 
    the_post(); 
?> 
    <div class="news"><h1><a href="<?php 
    the_permalink(); 
?>" rel="news" title="<?php 
    the_title_attribute(); 
?>"><?php 
    the_title(); 
?></a></h1> 
    <p> 
    <?php 
    the_excerpt(); 
?> 
    </p> 
    </div> 
<?php 
endwhile; 
?> 
<p><?php 
wp_pagenavi(); 
?></p> 
<?php 
wp_reset_query(); 
?>         

У меня есть этот код в содержании страницы, я использую Exec-PHP плагин для разбора кода. Проблема в том, что когда я нажимаю на странице 2, я все еще вижу новости на странице 1. Так что разбиение на страницы не работает.

Любая идея?

На странице моего архива (archive.php) я тоже пробовал разбиение на страницы, но там, когда я нажимаю на странице 2, вместо этого я перенаправлен на главную страницу.

Помогите мне пожалуйста!

ответ

0

Насколько я знаю, Wordpress отклоняет любые параметры запроса URL, которые он не распознает.

Даже если вы решили эту проблему, эту функцию

<?php query_posts('posts_per_page=5'); ?> 

не принимает параметр страницы, так что кажется «очевидным», показывая всегда страницы 1. Я не знаю код внутри него, так что я мог бы быть неправильно.

Я нашел эту ссылку, чтобы решить первую проблему: http://www.webopius.com/content/137/using-custom-url-parameters-in-wordpress

+0

Я полагаю, query_posts() принимает параметры и автоматически настроить запрос, основанный на параметре 'CURRENT_PAGE'. Я тоже не знаю код внутри. : о – fabrik

0

может поможет вам

http://tareq.wedevs.com/2011/07/simple-pagination-system-in-your-wordpress-plugins/

или смотрите ниже простых шагов:

$pagenum = isset($_GET['pagenum']) ? absint($_GET['pagenum']) : 1; 

Найти общий номера записей

$limit = 10; // number of rows in page 
$offset = ($pagenum - 1) * $limit; 
$total = $wpdb->get_var("SELECT COUNT(`id`) FROM {$wpdb->prefix}table_name"); 
$num_of_pages = ceil($total/$limit); 

предел подавай:

$entries = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}table_name LIMIT $offset, $limit"); 

Добавьте этот код, где вы хотите нумерация страниц:

$page_links = paginate_links(array(
    'base' => add_query_arg('pagenum', '%#%'), 
    'format' => '', 
    'prev_text' => __('&laquo;', 'aag'), 
    'next_text' => __('&raquo;', 'aag'), 
    'total' => $total, 
    'current' => $pagenum 
)); 

if ($page_links) { 
    echo '<div class="tablenav"><div class="tablenav-pages" style="margin: 1em 0">' . $page_links . '</div></div>'; 
} 
2

пытается использовать Wordpress плагин, который поможет вам в пагинацию, нет необходимости встроенной команды пагинации, что не было 1 2 3 так далее. этот плагин дает вам лучший формат для разбивки на страницы.

https://wordpress.org/plugins/jquery-post-splitter/

Использование этого плагина: https://progtec.wordpress.com/2015/10/13/jquery-post-splitter-plugin/