WordPress нумерация страниц не работает? - PullRequest
1 голос
/ 29 января 2011

Мой код

Я написал этот код для разбиения на страницы перед циклом

$arrangement = get_cat_ID('arrangement');
$antiquarianism = get_cat_ID('antiquarianism');

$paged = (get_query_var('page')) ? get_query_var('page') : 1;

 print_r($paged);
$query = query_posts(array(

        'page'  => intval($paged),
 'category__not_in' => array($arrangement, $antiquarianism ) ));

каждый раз, когда печатается 1.

Ответы [ 2 ]

2 голосов
/ 29 января 2011

Вы пробовали var_dump $paged? Или сбросьте get_query_var('page'), как указано здесь: поддержка worpress

1 голос
/ 29 января 2011

У меня раньше была похожая проблема.К сожалению, это может быть несколько вещей.

Одной из возможностей является обработка запроса страницы по отношению к циклу Wordpress.Я только что прочитал документацию для query_posts и заметил это:

Сохранение исходного запроса (разбиение на страницы и т. Д.). По умолчанию выполнение query_posts полностью перезапишет все существующие переменные запроса на текущей странице.Разбивка на страницы, даты категорий и т. Д. Будут потеряны, и будут использоваться только те переменные, которые вы передаете в query_posts.

Если вы хотите сохранить исходный запрос, вы можете объединить исходный массив запросов с массивом параметров:

global $wp_query;
query_posts(
    array_merge(
        array( 'cat' => 1 ),
        $wp_query->query
    )
);

http://codex.wordpress.org/Function_Reference/query_posts

Я не уверен, влияет ли это на вас, но оно того стоит.

РЕДАКТИРОВАТЬ: вы также можете попробовать запустить отдельный цикл get_postпосле закрытия цикла (т. е. после основного конца).Это решало проблемы для меня в прошлом

<?php 
// custom pagination improvements
    //http://codex.wordpress.org/Template_Tags/get_posts
     $lastposts = get_posts('numberposts=50&order=DESC&orderby=ID');
     setup_postdata($lastposts);
     $valid_posts = array ();
     $lastposts = (array) $lastposts;
     foreach ($lastposts as $post) {
        $post = (array) $post;
        // Sort through arrays here - get the next valid post
        switch (true) {
            case ($post['post_status'] == 'publish' && $post['ID'] < $curr_pid[0]):
                array_push($valid_posts, $post);
                break;
            default:
                break;
        }
     }
     $nextArray = $valid_posts[0];
?>
 <ul class="pagination">
    <li class="next"><a href="<?php echo(get_permalink($nextArray['ID'])); ?>"><?php echo ($nextArray['post_title']); ?></a></li>
</ul>

Это некоторый код, который я написал для первой страницы, чтобы он просто показывал «следующий», а затем ссылался на следующий пост в соответствии с моим фильтром (скореечем то, что думал Wordpress должен идти дальше).Конечно, вы могли бы выводить несколько ссылок с номерами, используя цикл foreach.Это немного усложнит ситуацию, но даст вам очень детальный контроль над тем, что происходит при нумерации страниц.

Это вам помогает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...