Jeśli chcesz dodać obsługę paginacji do swojego motywu WordPress z fajnymi numerami zamiast domyślnego następnego i poprzedniego postu, możesz to zrobić za pomocą słynnej wtyczki PageNavi, jednak znacznie wolę ręczne dodawanie paginacji do moich motywów, aby ludzie nie musieli szukać wtyczki. Pomaga również utrzymać witrynę szybciej bez wszystkich zewnętrznych skryptów i CSS.
Na szczęście istnieje świetna funkcja w wordpress o nazwie „paginate_links”, która została dodana w WordPress 2.1 i pozwoli Ci stworzyć stronicowaną nawigację w stylu dla dowolnego zapytania w Twojej witrynie. Oto szybki samouczek do dodawania prostej nawigacji strony do motywu, który wygląda jak paginacja w moim całkowitym WordPressTheme.
Paginacja PHP
Wystarczy dodać następujący kod na końcu funkcji.plik php (lub dowolny plik w Twoim motywie, w którym chcesz go zachować).
// Numerowana Paginacja
jeśli ( !function_exists ('wpex_pagination')) {
function wpex_pagination () {
$prev_arrow = is_rtl() ? '→' : '←';
$next_arrow = is_rtl() ? '←' : '→';
global $wp_query;
$total = $wp_query- > max_num_pages;
$big = 999999999; / / potrzeba mało prawdopodobnej liczby całkowitej
if ($total > 1) {
jeśli( !$current_page = get_query_var('paged') )
$current_page = 1;
if (get_option ('permalink_struktura')) {
$format = ' Strona/%#%/';
} else {
$format = ' & paged=%#%';
}
echo paginate_links(array (
'base' = > str_replace ($big,'%#%', esc_url (get_pagenum_link ($big ) ) ),
'format' = > $format,
'current' = > max (1, get_query_var('paged') ),
'total' = > $total,
'mid_size' = > 3,
'type' = > 'list',
'prev_text' = > $prev_arrow,
'next_text' = > $next_arrow,
) );
}
}
}
Wyświetl Wszystkie Parametry
Paginacja CSS
Skopiuj poniższy CSS i wklej do swojego stylu.plik css.
ul.page-numbers {
styl listy: brak;
margin: 0;
}
.page-numbers: after {
treść: ".";
wyświetlacz: blok;
clear: zarówno;
widoczność: Ukryty;
line-height: 0;
Wysokość: 0;
}
ul.page-numbers li {
wyświetlacz: blok;
float: left;
margin: 0 4px 4px 0;
text-align: center;
}
.strona-numery a,
.page-numbers span {
wysokość linii: 1,6 em;
wyświetlacz: blok;
padding: 0 6px;
wysokość: 18px;
/ width = 18px / ;
font-size: 12px;
tekst-Dekoracja: Brak;
font-weight: 400;
kursor: wskaźnik;
border: 1px solid #DDD;
kolor: #888;
}
.page-numbers a span { padding: 0 }
.strony-numery a: hover,
.numery stron.obecny,
.numery stron.current: hover {
kolor: #000;
background: # f7f7f7;
tekst-Dekoracja: Brak;
}
.page-numbers: hover { text-decoration: none }
Dodanie Funkcji Paginacji Do Motywu
Wywołanie funkcji paginacji jest naprawdę proste. Wszystko, co musisz zrobić, to dodać następujący kod do plików motywów, w których chcesz pokazać dowolny rodzaj paginacji. Najczęstszym jest Twój indeks.php, Dom.php, Kategoria.php, tagi.php, archiwum.php i Szukaj.php. Ale jeśli masz jakieś niestandardowe szablony stron z obsługą paginacji, będziesz chciał je dodać tutaj.
Zamień domyślną paginację na następującą (Zwykle znajdującą się gdzieś po endif ):
<?php wpex_pagination ();?>
Zapytania Niestandardowe?
Jeśli tworzysz niestandardowe zapytanie za pomocą WP_Query, ta funkcja nie będzie działać, chyba że zdefiniowałeś swoje zapytanie w zmiennej $wp_query (co jest złe, nie rób tego). Aby to naprawić, Zwykle tworzę nowe zapytania, takie jak następujące:
$wpex_query = new WP_Query ($args );
W ten sposób mogę zmienić główną funkcję paginacji, aby szukać zmiennej podczas tworzenia paginacji, przykład (edycja pierwszego fragmentu):
global $wp_query, $wpex_query;
if ($wpex_query) {
$total = $wpex_query- > max_num_pages;
} else {
$total = $wp_query- > max_num_pages;
}
Aktualizacja: W tym przykładzie sprawdzam zmienną globalną … jednak można po prostu przekazać zmienną zapytania bezpośrednio do funkcji wpex_pagination, która jest prawdopodobnie lepszym wyborem 😉