Описание
Выводит ссылки навигации по страницам, для многостраничных постов (для разделения используется шоткод <!--nextpage-->, один или более раз, в посте).
Чтобы функция wp_link_pages() работала, нужно разделить контент записи тегами <!--nextpage-->, затем функция разобьет контент на страницы, в соответствии с тем сколько раз был использован тег <!--nextpage-->.
Этот Тег шаблона нужно использовать внутри Цикла WordPress или на отдельной странице поста.
wp_link_pages() работает точно так же как link_pages() (запрещена с версии 2.1).
Функция возвращает html код ссылок или пустую строку, если ссылок нет.
Использование
<?php wp_link_pages( $args ); ?>
Параметры по умолчанию
<?php
$args = array(
'before' => '<p>' . __('Pages:')
,'after' => '</p>'
,'link_before' => ''
,'link_after' => ''
,'next_or_number' => 'number'
,'nextpagelink' => __('Next page')
,'previouspagelink' => __('Previous page')
,'pagelink' => '%'
,'echo' => 1 );
wp_link_pages( $args );
?>
Параметры
- $args (строка/массив)
- Параметры функции, передаваемые в виде массива или строки.
Аргументы параметра $args
- before (строка)
- Текст, который будет находится перед ссылками.
По умолчанию: '<p>Pages: ' - after (строка)
- Текст, который будет находится после ссылок.
По умолчанию: '</p>' - link_before (строка)
- Текст, который будет до каждой ссылки. С версии 2.7.
По умолчанию: '' - link_after (строка)
- Текст, который будет после каждой ссылки. С версии 2.7.
По умолчанию: '' - next_or_number (строка)
- Переключатель, определяющий нужно ли показывать ссылки как номера всех страниц (number) или показать две ссылки навигации: "вперед", "назад". Может быть: number или next.
По умолчанию: 'number' - nextpagelink (строка)
- Текст ссылки "следующая страница".
По умолчанию: 'Next page' - previouspagelink (строка)
- Текст ссылки "предыдущая страница".
По умолчанию: 'Previous page' - pagelink (строка)
- Формат текста ссылок. % будет заменено на число, так "Страница %" выведет ссылки с текстом: "Страница 1", "Страница 2" и т.д.
По умолчанию: '%' - echo (логический)
- Выводить на экран (1) или возвращать для обработки (0).
По умолчанию: 1 (true)
Примеры
1. Базовое использование.
Выведем навигацию по страницам с параметрами по умолчанию, т.е. в теге <p>, с использованием постраничных ссылок (страница 1, страница 2) и ссылок навигации "назад", "вперед".
<?php wp_link_pages(); ?>
2. Обернем ссылки в тег <div> и изменим текст каждой ссылки на "страница №":
<?php wp_link_pages('before=<div id="page-links">&after=</div>&pagelink=page %'); ?>
wp_link_pages()
из файла: /wp-includes/post-template.php WP 3.3.2function wp_link_pages($args = '') {
$defaults = array(
'before' => '<p>' . __('Pages:'), 'after' => '</p>',
'link_before' => '', 'link_after' => '',
'next_or_number' => 'number', 'nextpagelink' => __('Next page'),
'previouspagelink' => __('Previous page'), 'pagelink' => '%',
'echo' => 1
);
$r = wp_parse_args( $args, $defaults );
$r = apply_filters( 'wp_link_pages_args', $r );
extract( $r, EXTR_SKIP );
global $page, $numpages, $multipage, $more, $pagenow;
$output = '';
if ( $multipage ) {
if ( 'number' == $next_or_number ) {
$output .= $before;
for ( $i = 1; $i < ($numpages+1); $i = $i + 1 ) {
$j = str_replace('%',$i,$pagelink);
$output .= ' ';
if ( ($i != $page) || ((!$more) && ($page==1)) ) {
$output .= _wp_link_page($i);
}
$output .= $link_before . $j . $link_after;
if ( ($i != $page) || ((!$more) && ($page==1)) )
$output .= '</a>';
}
$output .= $after;
} else {
if ( $more ) {
$output .= $before;
$i = $page - 1;
if ( $i && $more ) {
$output .= _wp_link_page($i);
$output .= $link_before. $previouspagelink . $link_after . '</a>';
}
$i = $page + 1;
if ( $i <= $numpages && $more ) {
$output .= _wp_link_page($i);
$output .= $link_before. $nextpagelink . $link_after . '</a>';
}
$output .= $after;
}
}
}
if ( $echo )
echo $output;
return $output;
}Смотрите также: Функции WordPress и Теги Шаблона.
Здравствуйте!
Подскажите, пожалуйста, как настроить ЧПУ при использовании функция wp_link_pages()
Структура ссылок моего сайта: /%category%/%postname%.html
И соответственно получаются ссылки:
http://домен/рубрика/статья.html/2
http://домен/рубрика/статья.html/3 и т.д.
Очень бы хотелось найти решение (ищу, к сожалению, безрезультатно уже давно), например:
http://домен/рубрика/статья-2.html
http://домен/рубрика/статья-3.html и т.д.
или
http://домен/рубрика/статья/2.html
http://домен/рубрика/статья/3.html и т.д.
А также сохранить структуру ссылок /%category%/%postname%.html
Буду очень рада любой помощи.
Послушайте совета - оставьте все как есть, потому что исправление до того варианта который вам нужен, дорогого стоит, я точно не знаю как это сделать. В такой структуре нет ничего плохого, кроме, наверное, ваших предрассудков и пожеланий.
Вообще было бы логично просто убрать .html и все бы стало выглядеть очень даже нормально. Попробуйте изменить ЧПУ (убрать .html) и проверьте, чтобы старые с .html редиректились на новые. В WP подобный редирект должен делаться автоматически.
Да тут баг на баге!!! Если url оставить в покое…, то title имеют одинаковое содержание.
. Прискорбно все это, а функцию wp_link_pages для обычных юзеров в топку…
Есть правда решение проблемы с дублированными заголовками ... , но с плагином All in One SEO это не работает.
Вот и получается, чтобы разбить нормально страницу надо отключить:
1) плагин All in One SEO (отказаться от SEO);
2) изменить структуру постоянных ссылок /%category%/%postname% (убрать .html) и
3) исправить дублирование заголовков.
И останется сайт без SEO, но с навигацией по страницам поста
Плагин с исправлением всего выше перечисленного нужен людям не только в рунете… Работа стоит денег. Возьметесь?
Меня немного не устраивает расположение вот это навигации. наверно это нужно в css изменить?только в css у меня этого нету,самому прописать надо?