Używana funkcja, wp_link_pages
Codex , nie ma domyślnie szukanej funkcji.
Można go jednak łatwo rozszerzyć za pomocą funkcji zwrotnej, zarejestrowanej jako filtr argumentów funkcji:
add_filter('wp_link_pages_args', 'wp_link_pages_args_prevnext_add');
Filtr następnie zmodyfikuje parametry używane w tej funkcji w locie i wstrzykuje brakujące linki do argumentów prev
i, next
które są wyprowadzane po lewej i prawej stronie listy linków numerowanych ( 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;
}
Stosowanie:
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 )
);
Jeśli Twój motyw zawsze używa poprzednich i następnych łączy, możesz nieco zmienić funkcję, aby stała się domyślnym zachowaniem za każdym razem, gdy number
używana jest (domyślna), więc musisz mniej pisać w swoich motywach.
Jest to nieco inna implementacja, jak sugeruje Velvet Blues .
wp_link_pages()
Funkcja pokazuje tylko albo tekstu lub liczby, nigdy obu. Jeśli spojrzysz na kod funkcji, zobaczysz, że nie ma opcji, aby zachowywać się inaczej, przekazując parametry.Biorąc to pod uwagę, istnieją trzy sposoby, aby to zrobić bez wtyczki:
wp_link_pages()
. Bardzo nieskuteczny hack.Napisałem artykuł o tym, jak to zrobić na moim blogu. Zasadniczo używam używam filtra wp_link_pages_args i dodaję funkcję w pliku functions.php, która dodaje nową opcję „next_and_number”.
Hack WordPress: Wyświetl numer i następne / poprzednie łącza za pomocą wp_link_pages ()
źródło
Wypróbuj to, możesz bardziej go dostosować. Ale powinno zrobić tak, jak chcesz :-)
źródło
Nie rozumiem, na czym polega problem ... Masz jakiś błąd?
To powinno działać:
Nie musisz dodawać next_or_number, ponieważ liczba jest już domyślna.
źródło
next_or_number
sięnext
. Ale pokazuje tylko linki „Następny” i „Poprzedni”, a nie liczby!Ten kod jest na pętli postów? Kodowanie jest dla mnie OK. Oto przykład Kodeksu dotyczący używania:
źródło
Odpowiedź jest inna, ale zainspirował się @ 荒野 无 灯, który postanowił usunąć swoją odpowiedź. Imho to najlepsze, jako najłatwiejsze i najbardziej elastyczne rozwiązanie:
Rozwiązanie zależy od
paginate_links()
. Jedyne, co należy wiedzieć, to to, żebase
od początku będzie dodawany URl%_%
, który zostanie następnie zastąpiony przezformat
. Tak długo, jak korzystamyget_permalink().'%_%';
, wiemy, że w każdym razie pozostaniemy na bieżącym poście. Wewnątrzformat
The#
zostanie zastąpiony numerem strony:źródło