wp_link_pages() WP 1.2.0

Виводить посилання навігації сторінками, для багатосторінкових постів (для поділу використовується <!--nextpage-->один або більше разів у контенті).

Щоб функція працювала, потрібно розділити контент запису html коментарями <!–nextpage–> . Після цього функція розіб’є контент на сторінки. Сторінок вийде стільки, скільки разів був вставлений роздільник <!–nextpage–> + одна сторінка.

nextpage2

Пагінація за вмістом сторінки.

Цей шаблон шаблону потрібно використовувати на окремій сторінці. Умовно можна сказати, що потрібно використовувати всередині Цикл 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)

Приклади

0

#1 Базове використання

Виведемо навігацію сторінок з параметрами за промовчанням, тобто. у тезі <p>, з використанням посторінкових посилань (сторінка 1, сторінка 2) та посилань навігації “назад”, “вперед”.

<?php wp_link_pages(); ?>
0

#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;
}

В результаті отримаємо таку кнопку:

Кнопка "Наступна сторінка" у візуальному редакторі WordPress
Кнопка “Наступна сторінка” у візуальному редакторі WordPress
0

#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.0Added the aria_current argument.

Сторінки: 1 2

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *