Mam stronę o nazwie „Apple”, której identyfikator to strona 2533.
W pliku page.php mam wiersz:
echo $bannerimg
I ta funkcja w functions.php:
if ( is_page( '2533' ) ) {
// also tested with 'Apple'
$bannerimg = 'apple.jpg';
} elseif ( is_page( 'test' ) ) {
$bannerimg = 'test.jpg';
} elseif ( is_page( 'admissions' ) ) {
$bannerimg = 'admissions.jpg';
} else {
$bannerimg = 'home.jpg';
}
Chodzi o to, że $ bannerimg echo „home.jpg” na każdej stronie, w tym Apple, test i wstępy.
Sprawdziłem nawet wszystkie identyfikatory za pomocą identyfikatora_ID i $ page-> ID. Nic. Więc chyba coś jest nie tak z powyższym kodem?
functions
pages
conditional-content
Wordpressor
źródło
źródło
Odpowiedzi:
functions.php
jest przetwarzany na długo, zanim dowiesz się, która strona jest ładowana. Zamiast przypisywać wartość zmiennej, wstaw kod do funkcji i użyj tej funkcji wpage.php
szablonie.źródło
is_page(); // When any single Page is being displayed. is_page(42); // When Page 42 (ID) is being displayed. is_page('Contact'); // When the Page with a post_title of "Contact" is being displayed. is_page('about-me'); // When the Page with a post_name (slug) of "about-me" is being displayed. is_page(array(42,'about-me','Contact')); // Returns true when the Pages displayed is either post ID 42.
prawdopodobnie nie jest to przypadek, ale wartoget_header
powinien działać, jeśli chcesz go zostawićfunctions.php
źródło
Rozszerzając to, co @Rarst opublikował i skomentowałeś, bardziej eleganckim rozwiązaniem byłoby utworzenie własnego filtra wewnątrz page.php i połączenie go z funkcją wewnątrz funkcji.php, na przykład:
w tobie page.php
i w twoich funkcjach. php
źródło
Dodaj to do swojego functions.php, zmień nazwę skryptu someCode i nazwę strony:
źródło
Musisz wywołać swoją funkcję w punkcie procesu WordPress po skonfigurowaniu zapytania .
W
functions.php
:Następnie w
page.php
pliku szablonu, gdziekolwiek chcesz zwrócić / wydrukować$bannerimg
:Następnie możesz zrobić, co chcesz
$bannerimg
: upuścić w<img>
tagu itp.źródło
Czy poprawnie zadeklarowałeś
wp_head();
itp. W swoim motywie?Również
is_page
akceptuje identyfikator bez cudzysłowów.Problemem może być również fakt, że jesteś już w szablonie strony, więc jest to strona, lepiej wypytaj
$post->ID
lub skonfigurujpage-apple.php
źródło
is_page()
może również zaakceptować identyfikator jako liczbę całkowitą