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. |