Intereting Posts
Попытка упаковать сообщения для повторной публикации партнером за пределами Сохранение содержимого LaTeX в соответствии с текстом без латекса Изменить постоянную ссылку автора с помощью htaccess? Отключить комментарии от показа публики для пользовательского типа сообщения Сеть WordPress на сервере IIS7 / SQL Server – перепишите проблемы Определенное количество сообщений с определенной длиной выдержки Как обойти пределы меню в WordPress? сделать массив в wordpress cusmization api? Публиковать сообщения определенной категории на определенные страницы Возьмите авторов из той же роли и той же таксономии Как скрыть образ-url, если нет привязанности? Создание новых боковых панелей через сообщение администратора / страница обмена Сломанные URL-адреса с http-сайтом и https wp-admin Ошибка пропущенного расписания Поддерживает ли REST API (официальный) персонализированные типы сообщений?

Как навигация работает в пользовательском цикле в рамках короткого кода?

Я использую короткий код для отображения пользовательского запроса. Штрих-код используется на странице. Все в порядке, только навигация, что я не могу заставить ее работать правильно.

Вот функция, которую я использую для отображения запроса, вызываемого по короткому коду:

$the_query = my_custom_query(); if($the_query){ if ($the_query->have_posts()) : while ($the_query->have_posts()) : $the_query->the_post(); echo '<a href="'.get_permalink().'">'.get_the_title().'</a><br>'; endwhile; next_posts_link(); previous_posts_link(); //here I can't get it right. else : $return_string = 'no result'; endif; }else{ echo 'ordinary page';} 

previous_posts_link() и next_posts_link() не отображаются. Это потому, что короткий код находился внутри основного цикла страницы?

Обновить это функция для получения пользовательского запроса

 function my_custom_query(){ $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args = array( 'post_type'=>any, 'posts_per_page'=> 1, 'max_num_pages'=> 10, 'paged'=>$paged, 'meta_query' => array('relation'=>'OR',array( 'taxonomy' => 'tax1', 'field' => 'slug', 'terms' => 'tax1term' )), 'tax_query' => array('relation'=>'OR',array( 'key' => 'metakey', 'value' => array(5,30), 'compare' => 'compare' )) ); $custom_query = new WP_Query( $args); return $custom_query; } 

ОБНОВЛЕНИЕ 2 Теперь я могу получить next_posts_link(); previous_posts_link(); next_posts_link(); previous_posts_link(); для отображения. Но проблема в том, что она связана с неправильной страницей. Результаты запроса остаются одинаковыми на каждой странице (независимо от того, является ли она следующей или предыдущей).

 $the_query = my_custom_query(); if($the_query){ if ($the_query->have_posts()) : while ($the_query->have_posts()) : $the_query->the_post(); echo '<a href="'.get_permalink().'">'.get_the_title().'</a><br>'; endwhile; previous_posts_link('Previous',$the_query->max_num_pages); next_posts_link('Next',$the_query->max_num_pages); //here I added $the_query->max_num_pages,and they shows up. else : $return_string = 'no result'; endif; }else{ echo 'ordinary page';} 

Solutions Collecting From Web of "Как навигация работает в пользовательском цикле в рамках короткого кода?"

если вы посмотрите на previous_posts_link() и next_posts_link() в источнике , вы увидите, почему они не работают, они используют глобальные $paged и $wp_query vars для форматирования ссылок и определения того, появляются они или нет. вам придется сворачивать свою собственную paged max_num_pages вычисленных и max_num_pages vars в вашем пользовательском запросе.