Saya memiliki halaman bernama "Apple", ID halaman id 2533.
Dalam file page.php saya memiliki baris:
echo $bannerimg
Dan fungsi ini di 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';
}
Intinya adalah $ bannerimg gema "home.jpg" pada setiap halaman, termasuk Apple, tes, dan penerimaan.
Saya bahkan sudah memeriksa semua ID menggunakan ID & $ page-> ID__. Tidak ada. Jadi saya kira ada yang salah dengan kode di atas?
functions
pages
conditional-content
Wordpressor
sumber
sumber
Jawaban:
functions.php
diproses sebelum Anda dapat mengetahui halaman mana yang sedang dimuat. Alih-alih memberikan nilai ke variabel, masukkan kode Anda ke dalam fungsi dan gunakan fungsi itu dipage.php
templat.sumber
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.
mungkin tidak demikian halnya tetapi patut dicobaget_header
harus berfungsi jika Anda ingin meninggalkannyafunctions.php
sumber
Memperluas apa yang diposting oleh @Rarst dan Anda berkomentar, solusi yang lebih elegan adalah membuat filter Anda sendiri di dalam page.php dan kaitkan dengan itu dari fungsi di dalam functions.php, misalnya:
di halaman Anda.php
dan di functions.php Anda
sumber
Tambahkan ini ke functions.php Anda, ubah nama skrip someCode dan nama halaman:
sumber
Anda perlu memanggil fungsi Anda pada suatu titik dalam proses WordPress setelah Kueri diatur .
Dalam
functions.php
:Kemudian, dalam
page.php
file template Anda , di mana pun Anda perlu mengembalikan / output$bannerimg
:Kemudian, Anda dapat melakukan apa pun yang Anda butuhkan dengan
$bannerimg
: letakkan di<img>
tag, dll.sumber
Sudahkah Anda menyatakan dengan benar
wp_head();
dll dalam tema Anda?Juga,
is_page
menerima ID tanpa tanda kutip.Masalahnya mungkin juga fakta bahwa Anda sudah berada di templat halaman sehingga merupakan halaman, Anda mungkin lebih baik menanyakan
$post->ID
atau mengaturpage-apple.php
sumber
is_page()
dapat menerima ID sebagai integer juga