Навигация по записям

Красивая навигация с изображениями между постами в WordPress

Навигация по записям

Навигацию между предыдущим и следующим постом в WordPress можно сделать более современной и красивой с помощью добавления изображения записи и CSS. Если ссылки навигации находятся в самом низу статьи и выглядят неприметно, то пора сделать их заметнее для посетителя. Сделаем это двумя способами: без плагина и с плагином.

Ссылки на следующую и предыдущую запись в WordPress выводятся функцией the_post_navigation, она объединяет в себе функции next_post_link() и previous_post_link(). Если в вашей теме используется именно такая функция, то аккуратно ее удалим и на это место вставим этот код:

В этой функции мы выведем ссылки с заголовком и миниатюрой поста. Задайте свой размер миниатюры заменив ‘thumbnail’ на свое значение. Также можно заменить тег h4 на любой другой.

Убедитесь, что ссылки работают как надо и добавьте стили. Блоки с ссылками навигации будут располагаться по бокам страницы и раскрываться при наведении.

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

/* Post Navigation ————————————————————– */.postNavigation { position: fixed; z-index: 9999; bottom: 45%; height: 100px; margin-top: -47px; transition: all .7s ease-in-out;}.postNavigation a { position: relative; display: inline-block; width: 40px; height: 100px; transition: all .4s ease-in-out; vertical-align: middle; color: #fff; background: #dfdfdf; box-shadow: 0 0 80px #e7e7e7;}.postNavigation a:before { line-height: 28px; font-family: 'FontAwesome'; font-size: 28px; position: absolute; top: 50%; margin-top: -14px;}.nextPostBox a:before { left: 12px; content: '\f104';}.prevPostBox a:before { right: 12px; content: '\f105';}.prevPostBox { right: 0;}.nextPostBox { left: 0;}.postNavigation .thumbnail { position: relative; float: right; width: 70px; height: 70px; margin-left: 5px; text-align: center;}.postNavigation.prevPostBox .thumbnail { float: left; margin-right: 5px; margin-left: 0;}.postNavigation .headline { font-size: 14px; position: relative; overflow: hidden; height: 70px; padding: 0 8px; -webkit-font-smoothing: antialiased;}.postNavigation .headline span { line-height: 10px; font-size: 10px; display: block; margin-bottom: 8px; letter-spacing: 1px; text-transform: uppercase;}.postNavigation .headline h4 { margin: 0;}.postNavigation .inner-prevnext { position: absolute; top: 0; -webkit-box-sizing: border-box; box-sizing: border-box; width: 290px; height: 100%; padding: 15px; transition: all .2s ease-in-out .3s; color: #111; background-color: #fff;}.postNavigation.prevPostBox .inner-prevnext { left: 0; margin: 0 0 0 40px;}.postNavigation.nextPostBox .inner-prevnext { right: 0; margin: 0 40px 0 0;}.postNavigation a:hover { width: 330px; color: #fff;}.postNavigation.prevPostBox a:hover .inner-prevnext { margin: 0 40px 0 0; opacity: 1;}.postNavigation.nextPostBox a:hover .inner-prevnext { margin: 0 0 0 40px; opacity: 1;}

Не забудьте про отображение на мобильных устройствах. На моем сайте стили для экранов меньше 701px выглядят так:

@media only screen and (max-width: 701px){ .postNavigation a { line-height: 32px; width: 32px; height: 32px; } .postNavigation a:hover { width: 35px; } .postNavigation .inner-prevnext { display: none; }}

У вас должен получиться вот такой раскрывающийся блок навигации справа и слева каждой статьи.

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

/* Scroll Post Navigation */ $(window).scroll(function(){ if ($(this).scrollTop() >= 600) { $('.float-posts-nav').fadeIn(); } else { $('.float-posts-nav').fadeOut(); } });

Cresta Posts Box Free — бесплатный плагин WordPress для навигации между постами. Ссылка на следующий или предыдущий пост выводится в красивом блоке, всплывающем при прокрутке страницы. Появляется оно в самом конце поста, поэтому не будет мешать просмотру контента. Выглядит блок таким образом:

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

Включить навигацию не только в постах, но и на страницах. Изменить размер шрифта и высоту строки. Добавить собственные стили и отключить навигацию на мобильных устройствах. Настройки абсолютно просты и понятны.

Можно не боясь устанавливать на работающий сайт.

В Cresta Posts Box версии PRO уже можно установить обе ссылки на статьи. А самое интересное, показать случайный пост или похожую тему поста, отобразить несколько случайных или последующих ссылок на статьи. Стоимость плагина на один сайт €12.99.

Источник: https://webkato.ru/krasivaja-navigacija-s-izobrazhenijami-mezhdu-postami-v-wordpress/

WP-PageNavi постраничная навигация WordPress

Навигация по записям
(Последнее обновление: 01.07.2016)

Всем привет! Если читатель вашего блога может переходить по страницам только следующим путем: Назад – Вперед или по таким ссылкам Предыдущее – Новые сообщения, тогда у вас стоит стандартная, не удобная навигация.

Если у вас сообщений за сотню или больше , то это представляет для посетителя большие неудобства.

Вам её надо поменять на более удобную постраничную навигацию, чтобы пользователю было удобно двигаться произвольно, то есть, он смог попасть даже на последние страницы вашего сайта.

Современная, красивая постраничная навигация для блога WordPress организуется с помощью популярного плагина WP-PageNavi. На официальном сайте wordpress.

org данный модуль занимает четвертое место по скачиванию. На момент написания этого поста, его скачали уже 4065194 раз. Как устроена удобная навигация по страницам Вы можете посмотреть у меня на блоге.

Если готовы к переменам на своем веб-ресурсе, тогда приступим.

Постраничная навигация WordPress с помощью плагина WP-PageNavi

Постраничная навигация WordPress блога

Как установить и настроить плагин WP-PageNavi

Установить данный модуль можно стандартным путём, через раздел “Плагины” – “Добавить новый”, в поле для поиска плагинов вводим его название и нажимаем кнопку искать. Затем, после успешной установки незабываем активировать плагин.

В разделе “Параметры” у вас появится пункт Список страниц вот и по ней кликаем. Откроется страница “Настройки плагина”, где вам надо всего лишь внести кое какие изменения – ваш текст написания и так далее.

Плагин поддерживает русский язык, поэтому в настройках сложностей нет (есть подсказки):

Настройки плагина WP-PageNavi

Продолжение:

Настройки плагина WP-PageNavi

Как видно из скриншота, Вы можете заменить текст на свой или оставить всё как есть. Отметьте -Использовать стиль pagenavi-css.css или нет. Если вам нужно настроить CSS стиль WP-PageNavi сделать это можно в файле плагина.

Надо для этого перейдите в раздел “Плагины” – “Редактор”, выберете в качестве плагина для изменения WP-PageNavi и найдите в открывшемся списке файл wp-pagenavi/pagenavi-css.css. По настройкам все понятно. Следующий шаг такой.

В вашей теме в файлах index.php, archive.php и search.php , необходимо найти призывы к next_posts_link () и previous_posts_link () и заменить их. В теме TwentyTen, это выглядит так:

Может в других темах выглядеть и так:

Ищите, что то похожее и вам надо заменить эти строчки этим:

Все. Готово. Теперь будет плагин работать. Если вам стиль навигации не подходит под дизайн вашего блога и Вы хотите придать особенный вид для неё, тогда вам надо читать статью далее.

Плагин WP PageNavi Style добавляет больше цветовых вариантов для Wp-PageNavi

Плагин WP PageNavi Style

Да, Вы не ошиблись, для того, чтобы можно было воспользоваться готовыми стилями для постраничной навигации WP-PageNavi, надо установить дополнительный плагин WP PageNavi Style от этого же разработчика. Установите таким же образом этот модуль, активируйте его и у вас появится пункт WP PageNavi Style в боковой колонке админки. Нажмите её для настроек и выбора стиля для вашей новой навигации:

Настройка плагина WP PageNavi Style

Как видно из скриншота, можно выбирать различные красивые панельки и расположение её. Набор стилей плагина:

Набор стилей плагина Плагин WP PageNavi Style

Какой большой выбор. Если не хотите использовать готовые стили, установите – Custom и настройте стиль по своему:

Custom и настройте стиль по своему

Все. Еще один момент. Если Вы готовы установить постраничную навигацию в ручную, то есть без плагина, тогда читаем далее.

Как установить постраничную навигацию WordPress без плагина

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

Откройте файл “Функции темы” (functions.php), прокрутите страницу вниз и перед закрывающим тегом ?> вставьте такой код (не забудьте на всякий случай сделать резервную копию, если пойдет, что не так:

function navigation() {global $wp_query, $wp_rewrite;$pages = '';$max = $wp_query->max_num_pages;if (!$current = get_query_var('paged')) $current = 1;$a['base'] = str_replace(999999999, '%#%', get_pagenum_link(999999999));$a['total'] = $max;$a['current'] = $current;$total = 0; //1 – выводить текст “Страница N из N”, 0 – не выводить$a['mid_size'] = 3; //сколько ссылок показывать слева и справа от текущей$a['end_size'] = 5; //сколько ссылок показывать в начале и в конце$a['prev_text'] = '« Предыдущая '; //текст ссылки “Предыдущая страница”$a['next_text'] = 'Следующая »'; //текст ссылки “Следующая страница”if ($max > 1) echo '';if ($total = 1 && $max > 1) $pages = 'Страница ' . $current . ' из ' . $max . ''.”\r”;echo $pages . paginate_links($a);if ($max > 1) echo '';}

Затем, меняем стандартный код вывода во всех файлах, где есть навигация – index.php, category.php, archive.php и так далее. Меняем вместо:

next_posts_link('« Вперед');previous_posts_link('Назад »');

Этим:

Далее, надо добавить стиль css. Откройте файл вашего шаблона “Таблица стилей” (style.css) и в самый низ вставьте етот код:

.navig {padding:15px 0 25px 0;overflow:hidden;font-size:13px;color:#000;clear:both;} .navig a{background: #fff;border: 1px solid #DDDDDD;color: #000000;font-size: 13px;padding:5px;text-decoration: none;} .navig span.pages {padding: 3px 5px;background:#f1f8f9;border: 1px solid #C6D2D4;} .navig a:hover{background: #fff;border: 1px solid red;color:red;font-size: 13px;text-decoration: none;} .navig span.pages {padding: 3px 5px;background:#f1f8f9;border: 1px solid #C6D2D4;} .navig span.current {background: #fff;border: 1px solid #111;font-size: 13px;padding:5px;text-decoration: none;} .navig span.extend {padding: 3px 5px;background:#f1f8f9;border: 1px solid #C6D2D4;} .str{background: #fff;color: #000000;font-size: 13px;padding: 5px;text-decoration: none;}

Готово. Если вам не очень понятно, как сделать навигацию в ручную, лучше воспользуйтесь плагином. А у меня на этом все. До встречи.

Источник: https://WordPressMania.ru/wp-pagenavi-postranichnaya-navigatsiya-wordpress/

Ограничение стандартной навигации по записям

Навигация по записям

В данной статье David Powell расскажет вам, как ограничить стандартную навигацию по записям. Допустим, вы изучаете запись определенного автора из выбранной рубрики. Навигация, которая обычно размещается под рассматриваемой записью, включает в себя два перехода: назад, к более ранней записи, и вперед, к более свежей.

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

Примечание: метод основан на модификации базовых WordPress файлов, так что использовать его надо очень осторожно.

Функции next_post_link и previous_post_link, отвечающие за навигацию, позволяют сохранять ссылки для одной и той же рубрики. Однако для авторов они этого не делают. Чтобы решить проблему, придется отредактировать файл link-template.php.

Для того чтобы ограничить навигацию по записям, поместите файл link-template.php в папку /wp-includes/ и отредактируйте с помощью любого текстового редактора. В этом файле требуется поменять четыре функции. Найдите в нем следующие строки:

function previous_post_link($format='« %link', $link='%title', $in_same_cat = false, $excluded_categories = '') { adjacent_post_link($format, $link, $in_same_cat, $excluded_categories, true);}

Измените на следующее:

function previous_post_link($format='« %link', $link='%title', $in_same_cat = false, $excluded_categories = '', $is_author = false) { adjacent_post_link($format, $link, $in_same_cat, $excluded_categories, true, $is_author);}

Также под предыдущими строками вы найдете:

function next_post_link($format='%link »', $link='%title', $in_same_cat = false, $excluded_categories = '') { adjacent_post_link($format, $link, $in_same_cat, $excluded_categories, false);}

Замените на:

function next_post_link($format='%link »', $link='%title', $in_same_cat = false, $excluded_categories = '',$is_author = false) { adjacent_post_link($format, $link, $in_same_cat, $excluded_categories, false, $is_author);}

Мы провели небольшие изменения. Все, что мы сделали, это добавили $is_author = false к параметрам функции и $is_author в вызов функции.

В следующей функции мы добавим другой параметр и подкорректируем запрос SELECT, получающий предыдущую и последующую запись. Найдите следующую строку:

function get_adjacent_post($in_same_cat = false, $excluded_categories = '', $previous = true) { … }

Этот фрагмент довольно объемный, поэтому я рассмотрю только часть его, которая подвергнется изменениям. В первой строке мы добавим тот же самый параметр, что и раньше($is_author = false):

function get_adjacent_post($in_same_cat = false, $excluded_categories = '', $previous = true, $is_author = false) { … }

Затем в этой же самой функции найдем переменную $where (примерно вниз на 50 строк):

$where = apply_filters( “get_{$adjacent}_post_where”, $wpdb->prepare(“WHERE p.post_date $op %s AND p.post_type = %s AND p.post_status = 'publish' $posts_in_ex_cats_sql”, $current_post_date, $post->post_type), $in_same_cat, $excluded_categories );

Нам требуется изменить ее, чтобы она сохраняла автора только тогда, когда $is_author = true. Добавим небольшое окончание для переменной where:

$where = apply_filters( “get_{$adjacent}_post_where”, $wpdb->prepare(“WHERE p.post_date $op %s AND p.post_type = %s AND p.post_status = 'publish' $posts_in_ex_cats_sql”, $current_post_date, $post->post_type), $in_same_cat, $excluded_categories ); if($is_author) $where .= ” AND p.post_author='”.$post->post_author.”'”;

Наконец, финальным аккордом будет добавление в файл link-template.php изменений к следующей функции:

function adjacent_post_link($format, $link, $in_same_cat = false, $excluded_categories = '', $previous = true) { if ( $previous && is_attachment() ) $post = & get_post($GLOBALS['post']->post_parent); else $post = get_adjacent_post($in_same_cat, $excluded_categories, $previous);

Поместим $is_author в adjacent_post_link и добавим вызов get_adjacent_post:

function adjacent_post_link($format, $link, $in_same_cat = false, $excluded_categories = '', $previous = true, $is_author = false) { if ( $previous && is_attachment() ) $post = & get_post($GLOBALS['post']->post_parent); else $post = get_adjacent_post($in_same_cat, $excluded_categories, $previous, $is_author);

Теперь вы можете использовать эту новую опцию в файлах темы. Для ее «активации» добавьте в файл single.php что-нибудь наподобие следующего:

Установка последнего значения в true активирует сохранение автора для данной ссылки. Заметьте, что в предыдущем примере у меня есть $excluded_categories, поскольку я хочу оставаться в пределах той же самой рубрики.

Учтите, что при обновлении версии WP вам придется снова вносить вручную все изменения.
Чтобы провести все в автоматическом режиме, можно воспользоваться плагином http://wordpress.org/extend/plugins/retain-author/

http://digwp.com/2012/05/post-navigation-author-category/

Источник: https://oddstyle.ru/wordpress-2/stati-wordpress/ogranichenie-standartnoj-navigacii-po-zapisyam.html

Навигация по записям

Навигация по подстраницам одиночной записи/страницы

Имеются в виду подстраницы создаваемые тегом в html-редакторе.

wp_link_pages() – функция для вывода ссылок на подстраницы. Используется внутри цикла WordPress, обычно перед и/или после основного содержания записи.

Пример 1

Навигация между соседними записями

previous_post_link() и next_post_link() – ссылки на предыдущую и следующую запись в ленте блога (или в ленте рубрики) относительно текущей записи. Следующая запись определяется по дате публикации.

Пример 2

Стандартная навигация “вперед/назад” между страницами записей (рубрики, метки, архивы и т.п.)

posts_nav_link() – одна функция для вывода ссылок на предыдущую и следующую страницы.

Пример 3

previous_posts_link() и next_posts_link() – те же ссылки, но по отдельности. Для дополнительной обработки ссылок в PHP используются функции get_previous_posts_link() и get_next_posts_link().

Пример 4

Стандартная навигация “вперед/назад” между страницами комментариев

previous_comments_link() и next_comments_link() – ссылки на предыдущую и следующую страницы. Использование аналогично previous_posts_link() и next_posts_link().

Навигация по номеру страницы для страниц записей

paginate_links() – стандартная функция WordPress для нумерации страниц. Т.к. функция требует дополнительной настройки, имеет смысл создать в  functions.php новую функцию (пусть называется advanced_page_navigation() ) и поместить весь управляющий код внутрь нее:

// Код функции поместить в functions.phpfunction advanced_page_navigation($args = false) { global $wp_rewrite, $wp_query; if ($wp_query->max_num_pages == 1 || $wp_query->max_num_pages == 0) return; // Если страница единственная, навигацию скрываем. $wp_query->query_vars['paged'] > 1 ? $current = $wp_query->query_vars['paged'] : $current = 1; // Определение текущей страницы $default_args = array( // Массив параметров по умолчанию. 'base' => @add_query_arg('page','%#%'), 'format' => '', 'total' => $wp_query->max_num_pages, // Максимальное количество страниц. В данном случае – все страницы. 'current' => $current, // Текущая страница. 'show_all' => false, // true – показывает ссылки на все страницы (без сокращений). false – выводит ссылки в соответствии с параметрами max_size, mid_size, end_size. 'max_size' => 10, // Максимальное количество ссылок на страницы. 'mid_size' => 2, // Количество ссылок на страницы слева и справа от текущей. 'end_size' => 1, // Количество ссылок на страницы от начала и от конца списка (включая первую и последнюю). 'type' => 'plain', // plain – функция возвращает ссылки разделенные символом новой строки. list – ссылки на страницы представлены как немаркированный список (ul). array – возвращает ссылки в виде массива php. 'prev_text' => '<', // Текст кнопки “предыдущая страница” 'next_text' => '>', // Текст кнопки “следующая страница” 'echo' => false // 1 (true) – выводит результат на экран. 0 (false) – возвращает результат для последующей обработки в php ); $args = wp_parse_args($args, $default_args); if ( $args['max_size'] >= $wp_query->max_num_pages ) $args['show_all'] = true; else $args['show_all'] = false; if( $wp_rewrite->using_permalinks() ) // Если включены постоянные ссылки $args['base'] = user_trailingslashit( trailingslashit( remove_query_arg('s',get_pagenum_link(1) ) ) . 'page/%#%/', 'paged'); if( !empty($wp_query->query_vars['s']) ) // Если постоянные ссылки отключены $args['add_args'] = array('s'=>get_query_var('s')); $args['echo'] = false; // На всякий случай echo “Страница $current из {$wp_query->max_num_pages} ” . paginate_links($args) . ''.PHP_EOL;}

В шаблон вставляем новую функцию. Все компактно и красиво:

Пример css-оформления кнопок (как на этом сайте) для type = plain

Пример 5

Навигация по номеру страницы для страниц комментариев

paginate_comments_links() – встроенная функция для создания нумерации страниц комментариев, но мы ее использовать не будем из-за нескольких ограничений. Вместо нее воспользуемся более мощной paginate_links(). Как и в предыдущем примере, для простоты создаем вспомогательную функцию – advanced_comments_page_navigation():

// Код функции поместить в functions.phpfunction advanced_comments_page_navigation($args = false) { global $wp_rewrite; if ( !is_singular() || !get_option('page_comments') ) return; $max_num_pages = get_comment_pages_count(); if ( $max_num_pages == 1 || $max_num_pages == 0) return; $current = get_query_var('cpage'); if ( !$current ) $current = 1; $default_args = array( 'base' => add_query_arg( 'cpage', '%#%' ), 'format' => '', 'total' => $max_num_pages, 'current' => $current, 'show_all' => false, 'max_size' => 10, 'mid_size' => 2, 'end_size' => 1, 'type' => 'plain', 'prev_text' => '<', 'next_text' => '>', 'echo' => false, 'add_fragment' => '#comments' ); $args = wp_parse_args( $args, $default_args ); if ( $args['max_size'] >= $max_num_pages ) $args['show_all'] = true; else $args['show_all'] = false; if ( $wp_rewrite->using_permalinks() ) $args['base'] = user_trailingslashit(trailingslashit(get_permalink()) . 'comment-page-%#%', 'commentpaged'); $args['echo'] = false; echo “Страница $current из $max_num_pages ” . paginate_links($args) . ''.PHP_EOL;}

В шаблон вставляем:

Css-оформление такое же как и для paginate_links().

Источник: https://www.q2w3.ru/2010/12/17/2558/

Ссылки на предыдущую и следующую записи в WordPress

Навигация по записям

В статье про оформление записей блога я рассмотрел примеры и коды для вывода некоторых дополнительных информационных элементов на страницах постов: связных заметок, названий тегов/категорий и т.п.

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

Именно поэтому стараюсь добавлять их в каждый свой проект. 

В реализации задачи нам помогут 4 функции, о которых расскажу ниже:

  • next_post_link;
  • previous_post_link;
  • the_post_navigation;
  • posts_nav_link.

Поскольку речь идет о странице постов (Post), то в 99% случаев вам нужно будет редактировать файл шаблона single.

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

Если же требуется убрать следующие / предыдущие записи в WordPress, то ищите соответствующий код в этом же файле шаблона и удаляйте (или закомментируйте) его.  

Функция next_post_link

По умолчанию формируется линк на заметку, имеющую более новую дату создания сразу после текущей (т.к. все посты располагаются в хронологическом порядке). Вот как он выглядит в коде и на сайте:

Синтаксис функции:

Здесь:

  • format (строка) — определяет общий формат генерируемой ссылки, где с помощью переменной %link можете задавать какой-то текст до и после нее. По умолчанию это просто линк со стрелочкой: ‘%link »’
  • link (строка) — анкор ссылки на следующую запись в WordPress, параметр %title подставляет ее заголовок.
  • in_same_term (boolean) — определяет будут ли рассматриваться в работе только элементы из текущей категории. Допустимые значения true / false (1 / 0), по умолчанию второй вариант.
  • excluded_terms (строка или массив) — укажите ID категорий блога, заметки из которых будут исключены из выборки. Допускается либо массив array(2, 5, 4) либо написание в строку через запятую. Полезно при работе с GoGetLinks, когда нужно запретить показ рекламных постов в данном блоке.
  • taxonomy (строка) — содержит название таксономии, из которой берутся следующие записи, если переменная $in_same_term = true.

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

Здесь я задаю свой формат для отображения линка + исключаю из выборки все элементы, принадлежащие разделу ID = 152.

Если вам нужно вывести в WordPress следующий пост из той же категории, то пригодится код ниже (при этом игнорируется раздел ID = 33):

Когда хотите работать только с текущей конкретной таксономией, указывайте ее название в параметрах (например, testimonial):

Функция previous_post_link

Принцип работы с предыдущими записями WordPress аналогичен приведенному выше описанию, как и синтаксис. Выглядит так:

Соответствующий код:

  • format (строка) — задает формат создаваемой ссылки, за которую отвечает переменная %link (добавляйте текст/теги до и после нее). По умолчанию — ‘« %link’.
  • link (строка) — анкор линка, для вставки заголовка пишите %title.
  • in_same_term (boolean) — если значение true, то будут выводиться только объекты из того же раздела блога.
  • excluded_terms — убираем ненужные категории, указывайте ID через запятую (как строку) или массивом.
  • taxonomy (строка) — определяет таксономию выборки предыдущей записи в WordPress, если активен параметр $in_same_term.

В одном из блогов использую:

В коде все стандартно кроме исключения категории ID = 107. Ну, или вот еще пример:

Здесь делаем жирный шрифт + вместо заголовка элемента пишется определенная фраза (хотя лучше в перелинковке использовать тайтл). Выводятся объекты только текущей категории кроме той, у которой ID = 33. 

Функция the_post_navigation

Данное решение объединяет обе ссылки на предыдущие и следующие записи WordPress. Это сделано для удобства, заменяет вызов двух функций одной. Если вам нужно получить на выходе HTML код без отображения, применяйте get_the_post_navigation().

Синтаксис the_post_navigation максимально простой:

Где $args — набор разных не обязательных параметров:

  • $prev_text — анкор предыдущей ссылки (по умолчанию %title).
  • $next_text — аналогично текст линка но уже на следующий пост (изначально %title).
  • $in_same_term (true/false) — позволяет показывать статьи только из текущей таксономии.
  • $excluded_terms — исключаемые ID категорий через запятую.
  • $taxonomy — название таксономии для выборки, если in_same_term = true.
  • $screen_reader_text — заголовок всего блока (по умолчанию — Post navigation).

Таким образом, мы видим, что здесь имеются такие же переменные, как и в прошлых «единичных» функциях previous_post_link, next_post_link: анкоры, выборка по таксономиям и т.п. Использование решения просто сделает ваш код более компактным, да и нет смысла повторять одни и те же параметры два раза.

Рассмотрим самую простую ситуацию, когда нужно вывести навигацию по элементам из той же категории:

Функция posts_nav_link

Если я правильно понимаю, то ее можно использовать не только для отображения в единичной записи, но и в архивных страницах категорий, заметках по месяцам, датам и т.п. То есть в single.php она будет отвечать за ссылки на предыдущие/следующие WordPress статьи, а в архивных — за навигацию по страницам.

Синтаксис posts_nav_link:

Здесь:

  • $sep — разделитель, отображаемый между ссылками (раньше был ::, сейчас —).
  • $prelabel — текст линка предыдущих элементов (по умолчанию: « Previous Page).
  • $nxtlabel — текст для следующей страницы/постов (Next Page »).

Вот интересный пример с картинками вместо текстовых линков:

Только не забудьте загрузить изображения prev-img.png и next-img.png в директорию images в вашем шаблоне. Думаю, аналогично добавляется и другой HTML код, если, допустим, нужно использовать какие-то DIV или class при выравнивании.

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

Насчет posts_nav_link, если честно, не уверен, позволяет ли выводить предыдущие и следующие записи на единичной странице, т.к. не тестировал, хотя в описании это упоминается.

Думаю, в таком случае более эффективно и желательно использовать the_post_navigation, что поновее и с куда бОльшим числом параметров.

Если есть какие-то вопросы по навигации между постами или дополнения, пишите ниже.

Понравился пост? на обновления блога по RSS, Email или !

Источник: http://wordpressinside.ru/functions/previous-next/

Отдел Ревматолога
Добавить комментарий