Tengo una página llamada "Apple", el ID de la página ID 2533.
En el archivo page.php tengo línea:
echo $bannerimg
Y esta función en 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';
}
El punto es que $ bannerimg hace eco de "home.jpg" en cada página, incluyendo Apple, prueba y admisiones.
Incluso he comprobado todas las ID usando la_ID y $ page-> ID. Nada. ¿Entonces supongo que hay algo mal con el código anterior?
functions
pages
conditional-content
Wordpressor
fuente
fuente
Respuestas:
functions.php
se procesa antes de que pueda saber qué página se está cargando. En lugar de asignar un valor a la variable, ponga su código en función y use esa función en lapage.php
plantilla.fuente
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.
probablemente no sea el caso, pero vale la penaget_header
debería funcionar si quieres dejarlo enfunctions.php
fuente
Extendiendo lo que @Rarst publicó y comentó, una solución más elegante sería crear su propio filtro dentro de page.php y conectarlo desde una función dentro de functions.php, por ejemplo:
en tu pagina.php
y en tus funciones.php
fuente
Agregue esto a functions.php, cambie el nombre del script someCode y el nombre de la página:
fuente
Debe llamar a su función en un punto del proceso de WordPress después de configurar la consulta .
En
functions.php
:Luego, en su
page.php
archivo de plantilla, donde sea que necesite devolver / generar$bannerimg
:Luego, puede hacer lo que necesite
$bannerimg
: colocarlo en una<img>
etiqueta, etc.fuente
¿Has declarado correctamente
wp_head();
etc. en tu tema?Además,
is_page
acepta una identificación sin comillas.El problema también puede ser el hecho de que ya está en la plantilla de la página, por lo que es una página, puede ser mejor consultar
$post->ID
o configurarpage-apple.php
fuente
is_page()
puede aceptar ID como entero también