Si la ID del post coincide con estas IDs entonces hacer esto
Todavía soy principiante con PHP pero estoy intentando mostrar un diseño diferente en mi página de WordPress para un ID específico de post.
Pensé que sería simple pero he probado bastantes variaciones del código siguiente. Incluyendo is_single
y sin el $post
etc. y me he quedado sin ideas. ¿Qué puedo hacer? ¿Qué necesito buscar? ¿Alguien puede ayudarme?
<?php
if (is_single ($post = '2578')) {
get_template_part('partials/content', 'challenge');
}
elseif (is_single ($post = '')) {
get_template_part('partials/challenge/content', 'challenge-2');
get_template_part('partials/challenge/content', 'categories');
get_template_part('partials/challenge/content', 'snake-checklist');
get_template_part('partials/challenge/content', 'timeline');
}?>
Esto parece casi correcto. Echemos un vistazo a is_single()
:
Funciona para cualquier tipo de publicación, excepto adjuntos y páginas...
Entonces, si el ID proporcionado no es de un tipo de publicación page
o attachment
, puedes usar la función así:
if( is_single( 2578 ) ) {
/* ... */
} else {
/* ... */
}
De lo contrario, si el ID es de un tipo de publicación page
, puedes usar is_page()
if( is_page( 2578 ) ) {
/* ... */
}
Si el ID es de una página de attachment
, puedes usar is_attachment()
if( is_attachment( 2578 ) ) {
/* ... */
}
Finalmente, si no estás seguro del tipo de publicación, podrías verificar el objeto global $post
, asumiendo que es correcto:
global $post;
if( is_object( $post ) && 2578 == $post->ID ) {
/* ... */
}

La función get_the_ID()
funcionará independientemente del tipo de publicación (ya sea una página, entrada o publicación personalizada).
Podrías usar esa función para realizar tu verificación condicional.
if ( get_the_ID() === 2578) {
get_template_part('partials/content', 'challenge');
}
else{
// Agregar otras llamadas a plantillas, o condiciones adicionales, is_single, is_archive, etc.
}?>
Ten en cuenta que esta función no funcionará en archivos ya que no tienen ID's.
