Intereting Posts

Можно ли пропускать определенные страницы при использовании ссылок <prev и next>?

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

Я использую этот плагин для ссылок «<prev» и «next>» на моем наборе страниц. Я могу изменить порядок страниц, используя меню wordpress admin, так что это почти идеально. Тем не менее, у меня есть несколько страниц, которые я хотел бы пропустить в «предыдущем» и «следующем» циклах.

Например, я использую статическую домашнюю страницу. В какой-то момент ссылка «следующая» ссылается на домашнюю страницу. Я бы хотел исключить домашнюю страницу и пару других из этого цикла. Это возможно? Каков наилучший способ сделать это?

Благодаря!

Тим

PS Плагин работает практически так же, как работает функция Next / Prev post. Я предполагаю, если есть способ исключить сообщения из этого цикла, что он будет работать одинаково для страниц с плагином. благодаря

Solutions Collecting From Web of "Можно ли пропускать определенные страницы при использовании ссылок <prev и next>?"

Не проверял плагин, который вы упомянули … но я использую это решение для навигации по «автору».

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

[edit: исправленные функции, в запросах отсутствовало условие menu_order]

заметки:

1) идентификатор 99999 соответствует статической странице, заданной как Front Page

2) все страницы должны иметь определенный порядок меню, я считаю, что если есть страницы с 0 (ноль) как порядок меню, это не будет работать

//PAGE.PHP get_next_page_nav(); get_prev_page_nav(); //FUNCTIONS.PHP function get_next_page_nav($link="%link", $title="%title") { global $wpdb, $post; $prev = $wpdb->get_row($wpdb->prepare("SELECT ID, post_title FROM $wpdb->posts WHERE post_type='page' AND post_status='publish' AND ID!='99999' AND menu_order < '".$post->menu_order."' ORDER BY menu_order DESC LIMIT 1;")); if($prev) { $title = preg_replace('/%title/',$prev->post_title, $title); echo preg_replace('/%link/', '<a href="'.get_permalink($prev->ID).'" rel="prev" class="next-page">'.$title.'</a> ', $link); } } function get_prev_page_nav($link="%link", $title="%title") { global $wpdb, $post; $next = $wpdb->get_row($wpdb->prepare("SELECT ID, post_title FROM $wpdb->posts WHERE post_type='page' AND post_status='publish' AND ID!='99999' AND menu_order > '".$post->menu_order."' ORDER BY menu_order ASC LIMIT 1;")); if($next) { $title = preg_replace('/%title/',$next->post_title, $title); echo preg_replace('/%link/', ' <a href="'.get_permalink($next->ID).'" rel="next" class="previous-page">'.$title.'</a>', $link); } }