wp_link_pages()
Виводить посилання навігації сторінками, для багатосторінкових постів (для поділу використовується <!--nextpage-->один або більше разів у контенті).
Щоб функція працювала, потрібно розділити контент запису html коментарями <!–nextpage–> . Після цього функція розіб’є контент на сторінки. Сторінок вийде стільки, скільки разів був вставлений роздільник <!–nextpage–> + одна сторінка.
Цей шаблон шаблону потрібно використовувати на окремій сторінці. Умовно можна сказати, що потрібно використовувати всередині Цикл WordPress .
Щоб швидко вставити <!--nextpage-->візуальний редактор, використовуйте комбінацію клавіш: alt + shift + p.
Щоб дізнатися, чи перебуваємо ми на сторінці пагінації, використовуйте функцію is_paged() .
Хуки з функції
Повертає
Строку. HTML код кнопок пагінації. Коли параметр echo = true , також виведе цей код на екран.
Шаблон використання
wp_link_pages([
'before' => '<p>' . __('Pages:'),
'after' => '</p>',
'link_before' => '',
'link_after' => '',
'next_or_number' => 'number',
'nextpagelink' => __('Next page'),
'previouspagelink' => __('Previous page'),
'pagelink' => '%',
'echo' => 1,
]);Використання
<?php 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 Додавання кнопки розриву сторінки у Віз.Редактор TyniMCE
Така кнопка передбачена WordPress, але вона не виводиться. Тому все, що нам потрібно зробити – це через хук додати в масив назву цієї кнопки, решту WP зробимо сам… Для цього потрібно вставити такий код у functions.php теми:
## Додавання кнопки розриву сторінки у Віз.Редактор TyniMCE
add_filter('mce_buttons', 'mce_page_break');
function mce_page_break( $mce_buttons ){
$pos = array_search('wp_more', $mce_buttons, true);
if( $pos !== false ) {
$ buttons = array_slice ($ mce_buttons, 0, $ pos);
$buttons[] = 'wp_page';
$mce_buttons = array_merge($buttons, array_slice($mce_buttons, $pos));
}
return $mce_buttons;
}В результаті отримаємо таку кнопку:

#3 Обернемо посилання в тег <div> і змінимо текст кожного посилання на “сторінка №”:
<?php wp_link_pages('before=<div id="page-links">&after=</div>&pagelink=page %'); ?>
Альтернатива wp_link_pages
Навігація як у pagenavi. Коли потрібно зробити навігацію як у цій статті , то ось код перероблений для сторінок:
/**
* Альтернатива wp_link_pages
* ver: 1.0
*/
function kama_link_pages(){
## Налаштування ================
$text_num_page = ''; // Текст кількості сторінок. {current} заміниться поточною, а {last} останньою. Приклад: 'Сторінка {current} з {last}' = Сторінка 4 з 60
$num_pages = 10; // скільки посилань показувати
$stepLink = 10; // після навігації посилання з певним кроком (значення = число (який крок) або '', якщо потрібно показувати). Приклад: 1,2,3...10,20,30
$ dotright_text = '…'; / / Проміжний текст "до".
$dotright_text2 = '...'; / / Проміжний текст "після".
$backtext = '«назад'; // Текст "перейти на попередню сторінку". Ставимо '', якщо це посилання не потрібне.
$nexttext = 'вперед'; // Текст "перейти на наступну сторінку". Ставимо '', якщо це посилання не потрібне.
$first_page_text = '« на початок'; // текст "першій сторінці" чи ставимо '', якщо замість тексту потрібно показати номер сторінки.
$last_page_text = 'наприкінці »'; // текст "до останньої сторінки" або пишемо '', якщо замість тексту потрібно показати номер сторінки.
## / Налаштувань ================
Global $page, $numpages;
$paged = (int) $page;
$max_page = $numpages;
if( $max_page <= 1 )
return false; // якщо навігація не потрібна
if(empty($paged) || $paged == 0) $paged = 1;
$pages_to_show = intval($num_pages);
$pages_to_show_minus_1 = $pages_to_show-1;
$half_page_start = floor($pages_to_show_minus_1/2); // скільки посилань до поточної сторінки
$half_page_end = ceil($pages_to_show_minus_1/2); // скільки посилань після поточної сторінки
$start_page = $paged - $half_page_start; // перша сторінка
$end_page = $paged + $half_page_end; // остання сторінка (умовно)
if( $start_page <= 0)
$start_page = 1;
if( ($end_page - $start_page) != $pages_to_show_minus_1 )
$end_page = $start_page + $pages_to_show_minus_1;
if( $end_page > $max_page ){
$start_page = $max_page - $pages_to_show_minus_1;
$ end_page = (int) $ max_page;
}
if( $start_page <= 0 ) $start_page = 1;
// Висновок
$out = '<div class="wp-pagenavi">'. "n";
if( $text_num_page ){
$text_num_page = preg_replace ('!{current}|{last}!', '%s', $text_num_page );
$out .= sprintf ("<span class='pages'>$text_num_page</span>", $paged,$max_page );
}
if( $backtext && $paged != 1 )
$out.= _wp_link_page($paged-1) . $backtext .'</a>';
if( $start_page >= 2 && $pages_to_show < $max_page ) {
$out. = _wp_link_page(1) . ($first_page_text?: 1).'</a>';
if( $dotright_text && $start_page != 2 )
$out.= '<span class="extend">'. $dotright_text .'</span>';
}
for( $i = $start_page; $i <= $end_page; $i++ ){
if( $i == $paged )
$out .= '<span class="current">'. $i.'</span>';
else
$out .= _wp_link_page($i) . $i .'</a>';
}
//Посилання з кроком
if( $stepLink && $end_page < $max_page ){
for( $i=$end_page+1; $i<=$max_page; $i++ ){
if( $i % $stepLink == 0 && $i !== $num_pages ){
if( ++$dd == 1 )
$out.= '<span class="extend">'. $dotright_text2 .'</span>';
$out .= _wp_link_page($i) . $i .'</a>';
}
}
}
if( $end_page < $max_page ) {
if( $dotright_text && $end_page != ($max_page-1) )
$out.= '<span class="extend">'. $dotright_text2 .'</span>';
$out.=_wp_link_page($max_page). ($last_page_text?: $max_page).'</a>';
}
if( $nexttext && $paged != $end_page )
$out .= _wp_link_page($paged+1) . $nexttext .'</a>';
$out .= '</div>';
return $out;
}
Після того, як вставили код у файл теми functions.php, викликаємо функцію так:
<?php echo kama_link_pages(); ?>
Установки знаходяться на початку функції.
нотатки
- Global. int. $page
- Global. int. $numpages
- Global. int. $multipage
- Global. int. $more
список змін
| З версії 1.2.0 | Введено. |
| З версії 5.1.0 | Added the aria_current argument. |

