Eu tenho uma página chamada "Apple", o ID da página 2533.
No arquivo page.php, tenho a linha:
echo $bannerimg
E esta função em 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';
}
O ponto é que os $ bannerimg ecoam "home.jpg" em todas as páginas, incluindo Apple, testes e admissões.
Eu até chequei todos os IDs usando o_ID & $ page-> ID. Nada. Então, acho que há algo errado com o código acima?
functions
pages
conditional-content
Wordpressor
fonte
fonte
Respostas:
functions.php
é processado antes de você saber qual página está sendo carregada. Em vez de atribuir valor à variável, coloque seu código em função e use essa função nopage.php
modelo.fonte
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.
provavelmente não é o caso, mas vale a penaget_header
deve funcionar se você quiser deixá-lo emfunctions.php
fonte
Estendendo o que o @Rarst postou e você comentou, uma solução mais elegante seria criar seu próprio filtro dentro do page.php e conectá-lo a partir de uma função dentro do functions.php, por exemplo:
em você page.php
e em suas funções.php
fonte
Adicione isso ao seu functions.php, altere o nome do script someCode e o nome da página:
fonte
Você precisa chamar sua função em um ponto do processo do WordPress após a configuração da consulta .
Em
functions.php
:Em seguida, no seu
page.php
arquivo de modelo, sempre que você precisar retornar / produzir$bannerimg
:Em seguida, você pode fazer o que precisar
$bannerimg
: coloque-o em uma<img>
tag etc.fonte
Você declarou corretamente
wp_head();
etc no seu tema?Além disso,
is_page
aceita um ID sem aspas.O problema também pode ser o fato de você já estar no modelo de página, por isso é uma página, é melhor consultar
$post->ID
ou configurarpage-apple.php
fonte
is_page()
pode aceitar ID como inteiro bem