Функция, которую вы используете, wp_link_pages
Кодекс , не имеет функции, которую вы ищете по умолчанию.
Однако вы можете легко расширить его, используя функцию обратного вызова, зарегистрированную в качестве фильтра для аргументов этой функции:
add_filter('wp_link_pages_args', 'wp_link_pages_args_prevnext_add');
Фильтр будет изменять параметры, которые используются в этой функции на лету и инъекционные недостающие ссылки на prev
и next
аргументы , которые выводятся на левой и правой стороне нумерованного списка ссылок ( next_or_number' => 'number'
):
/**
* Add prev and next links to a numbered page link list
*/
function wp_link_pages_args_prevnext_add($args)
{
global $page, $numpages, $more, $pagenow;
if (!$args['next_or_number'] == 'next_and_number')
return $args; # exit early
$args['next_or_number'] = 'number'; # keep numbering for the main part
if (!$more)
return $args; # exit early
if($page-1) # there is a previous page
$args['before'] .= _wp_link_page($page-1)
. $args['link_before']. $args['previouspagelink'] . $args['link_after'] . '</a>'
;
if ($page<$numpages) # there is a next page
$args['after'] = _wp_link_page($page+1)
. $args['link_before'] . ' ' . $args['nextpagelink'] . $args['link_after'] . '</a>'
. $args['after']
;
return $args;
}
Использование:
wp_link_pages(array(
'before' => '<p>' . __('Pages:'),
'after' => '</p>',
'next_or_number' => 'next_and_number', # activate parameter overloading
'nextpagelink' => __('Next'),
'previouspagelink' => __('Previous'),
'pagelink' => '%',
'echo' => 1 )
);
Если ваша тема всегда использует ссылки prev и next, вы могли бы немного изменить функцию, чтобы она использовалась в качестве поведения по умолчанию при каждом использовании number
(по умолчанию), поэтому вам нужно меньше писать в своих темах.
Это немного другая реализация, предложенная Velvet Blues .
wp_link_pages()
Функция показывает только либо текст или число, никогда не оба. Если вы посмотрите на код функции, вы увидите, что нет никакой возможности заставить ее вести себя иначе, передавая параметры.При этом есть три способа сделать это без плагина:
wp_link_pages()
. Очень неэффективный взлом.Я написал статью о том, как это сделать, в своем блоге. По сути, я использую фильтр wp_link_pages_args и добавляю функцию в файл functions.php, который добавляет новую опцию 'next_and_number'.
WordPress Hack: отображение номера и следующих / предыдущих ссылок с помощью wp_link_pages ()
источник
Попробуйте, вы можете больше настроить его. Но он должен делать, как вы хотели :-)
источник
Я не понимаю, в чем проблема ... У вас есть ошибка?
Это должно работать:
Вам не нужно добавлять next_or_number, поскольку номер уже используется по умолчанию.
источник
next_or_number
наnext
. Но он показывает только ссылки «Далее» и «Предыдущие», а не цифры!Этот код в цикле сообщений? Кодирование в порядке для меня. Вот пример Кодекса о том, как использовать:
источник
Ответ другой, но он был вдохновлен @ 荒野 无 灯, который решил удалить свой ответ. Имхо, это лучшее, самое простое и гибкое решение:
Решение зависит от
paginate_links()
. Единственное, что нужно знать, это тоbase
, что с самого начала будет добавлен URl%_%
, который затем будет заменен наformat
. Так что, пока мы используемget_permalink().'%_%';
, мы знаем, что мы в любом случае останемся на текущем посту. Внутриformat
, то#
заменяется номером страницы:источник