Dacă ID-ul articolului se potrivește cu aceste ID-uri atunci fă asta
Sunt încă începător în PHP dar încerc să afișez un layout diferit pentru pagina mea WordPress pentru un ID specific de articol.
M-am gândit că ar fi fost simplu dar am încercat destul de multe variații ale codului de mai jos. Inclusiv is_single
și fără $post
etc. și am rămas fără inspirație. Ce pot face? Ce trebuie să caut? Mă poate ajuta cineva?
<?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');
}?>
Acesta pare aproape corect. Să ne uităm la is_single()
:
Funcționează pentru orice tip de postare, cu excepția atașamentelor și paginilor...
Deci, dacă ID-ul dat nu este al unui tip de postare page
sau attachment
, atunci puteți folosi funcția astfel:
if( is_single( 2578 ) ) {
/* ... */
} else {
/* ... */
}
În caz contrar, dacă ID-ul este al unui tip de postare page
, puteți folosi is_page()
if( is_page( 2578 ) ) {
/* ... */
}
Dacă ID-ul este al unei pagini de tip attachment
, puteți folosi is_attachment()
if( is_attachment( 2578 ) ) {
/* ... */
}
În final, dacă nu sunteți sigur de tipul postării, puteți verifica obiectul global $post
, presupunând că acesta este corect:
global $post;
if( is_object( $post ) && 2578 == $post->ID ) {
/* ... */
}

Funcția get_the_ID()
va funcționa indiferent de tipul de postare (pagina, articol sau postare personalizată).
Puteți utiliza această funcție pentru a vă efectua verificarea condițională.
if ( get_the_ID() === 2578) {
get_template_part('partials/content', 'challenge');
}
else{
// Adăugați alte apeluri de template sau condiții suplimentare, is_single, is_archive, etc.
}?>
Este important de menționat că această funcție nu va funcționa pe arhive deoarece acestea nu au ID-uri.
