W sytuacji, gdy jedna strona ma 20 postów. Chciałbym uzyskać bieżący numer strony, aby na dole zamieścić fajne linki do stron. Jak uzyskać bieżącą stronę. Próbowałem tego
Gdy WordPress korzysta z takiego podziału na strony, istnieje zmienna zapytania $paged, którą wpisuje. Więc strona 1 jest, $paged=1a strona 15 jest $paged=15.
Możesz uzyskać wartość tej zmiennej za pomocą następującego kodu:
Uzyskanie całkowitej liczby stron jest nieco trudniejsze. Najpierw musisz policzyć wszystkie posty w bazie danych. Następnie filtruj według opublikowanych postów (w porównaniu do wersji roboczych, zaplanowanych, kosza itp.). Następnie musisz podzielić tę liczbę przez liczbę postów, które mają pojawić się na każdej stronie:
Nie przetestowałem tego jeszcze, ale może być konieczne pobranie $posts_per_pagetego samego sposobu, w jaki został pobrany $paged(za pomocą get_query_var()).
To dobra alternatywa. Część $wp_querycałkowicie zapomniałem było tam: - /
EAMann
@EAMann BTW: istnieje także found_postswłaściwość „Łączna liczba znalezionych postów pasujących do aktualnych parametrów zapytania”, wp_count_posts () jest rodzajem narzutu.
jave.web
8
Możesz to zrobić za pomocą jednego wiersza kodu, ale z drugiej strony możesz chcieć dodać kod w innych miejscach, więc funkcja jest zwykle bardziej przydatna.
Wystarczy wywołać funkcję, w której chcesz wyświetlić komunikat „Strona x z y”, np.
<?php current_paged();?>
Jeśli potrzebujesz kodu do pracy z niestandardowym zapytaniem, tj. jeden utworzony za pomocą WP_Query, a następnie po prostu przekaż nazwę zmiennej, która przechowuje zapytanie do funkcji.
Jedną z opcji, która działa na wszystkich moich stronach archiwum jest:
$paged_maxnum = $GLOBALS['wp_query']->max_num_pages;if( $paged_maxnum >1){
$paged_current_page = get_query_var('paged')? intval( get_query_var('paged')):1;
$title_page_nrs ='page nr '. $paged_current_page .' of '. $paged_maxnum;
echo '<title>'. get_the_archive_title('',false).' - '. $title_page_nrs .' | Your Website Name</title>';}else{
echo '<title>'. get_the_archive_title('',false).' | Your Website Name</title>';}
Najpierw zapytaj, czy jest na niej więcej niż jedna strona wp_query, a następnie połącz tytuł z bieżącą stroną przez $paged_current_pagei łączną liczbę stron $title_page_nrs. Wreszcie echoto. Jeśli powyżej 1 strony, to elsejeśli nie jest stronicowana. To idzie do mojego archive.php lub szablonów dla tego typu. Produkuje:
<title>Taxonomy title - page nr 1 of 4 | Your Website Name</title>
$wp_query->max_num_pages
?$wp_query
całkowicie zapomniałem było tam: - /found_posts
właściwość „Łączna liczba znalezionych postów pasujących do aktualnych parametrów zapytania”, wp_count_posts () jest rodzajem narzutu.Możesz to zrobić za pomocą jednego wiersza kodu, ale z drugiej strony możesz chcieć dodać kod w innych miejscach, więc funkcja jest zwykle bardziej przydatna.
UWAGA: Kod może przejść do pliku funkcji.
Wystarczy wywołać funkcję, w której chcesz wyświetlić komunikat „Strona x z y”, np.
Jeśli potrzebujesz kodu do pracy z niestandardowym zapytaniem, tj. jeden utworzony za pomocą
WP_Query
, a następnie po prostu przekaż nazwę zmiennej, która przechowuje zapytanie do funkcji.Przykład nieistniejącego zapytania:
Pobieranie bieżącej strony niestandardowego zapytania za pomocą wcześniej opublikowanej funkcji ..
Jeśli chcesz całkowicie zapomnieć o niestandardowej obsłudze zapytań i szukasz jednej linijki, to powinno to zrobić.
Mam nadzieję, że to pomoże .. :)
źródło
$var
jest to zapytanie:if( is_a( $var, 'WP_Query' ) )
zwróci true, jeśli jest to obiekt zapytania.Jak wspomniano powyżej - prostszym sposobem uzyskania maksymalnej liczby stron jest:
źródło
Jedną z opcji, która działa na wszystkich moich stronach archiwum jest:
Najpierw zapytaj, czy jest na niej więcej niż jedna strona
wp_query
, a następnie połącz tytuł z bieżącą stroną przez$paged_current_page
i łączną liczbę stron$title_page_nrs
. Wreszcieecho
to. Jeśli powyżej 1 strony, toelse
jeśli nie jest stronicowana. To idzie do mojego archive.php lub szablonów dla tego typu. Produkuje:<title>Taxonomy title - page nr 1 of 4 | Your Website Name</title>
lub
<title>Taxonomy title | Your Website Name</title>
źródło