Tag-ul conditional is_page cu un tip personalizat de postare
Conform documentației pentru is_page, prin furnizarea slug-ului ca argument, WordPress poate să-mi spună dacă pagina curentă este cea reprezentată de slug. Poate folosesc slug-ul greșit? Am încercat atât calea folosită în argumentul rewrite cât și partea pe care o consider a fi "slug-ul" sau, cu alte cuvinte, elementul folosit pentru înregistrarea CPT-ului.
Mai jos găsiți un fragment de cod pentru a înțelege:
'rewrite' => array( 'slug' => 'faqs/archivio' )
);
register_post_type( 'faqs', $args );
Am încercat să folosesc slug-ul pentru un custom post type, dar nu am reușit să fac acest lucru să funcționeze.
Deci două întrebări:
- is_page ar trebui să funcționeze în acest caz?
- dacă nu, care este cea mai bună alternativă?
Mulțumesc, Andrea

Crearea unui tip de postare personalizată are în interiorul definiției un tip de postare. De asemenea, pagina este doar un tip de postare implicit. Dacă îți înregistrezi propriul tip de postare personalizată, atunci verifică acest tip de postare, nu o pagină.
Eticheta condițională is_singular
Funcția, eticheta condițională is_singular()
are ca scop principal verificarea dacă vizualizezi o postare singulară. Cu toate acestea, poate fi folosită și pentru a verifica dacă vizualizezi o postare singulară dintr-un anumit tip de postare, introducând parametrul $post_type
așa cum este arătat în fragmentul de cod următor.
is_singular( 'your_custom_post_type' );
sau diferite tipuri de postări
is_singular( array( 'your_custom_post_type_1', 'your_custom_post_type_2' ) );
Sugestie pentru depanare
Eu folosesc plugin-ul Debug Objects pentru a depana subiecte în acest context. Poate că acest lucru te va ajuta și pe tine, de multe ori mai ușor decât să citești codul sau codex-ul. Vezi următoarea captură de ecran a plugin-ului, rezultatul etichetelor condiționale, inclusiv is_page()
și is_single()
pe un CPT.

Mulțumesc, voi descărca acest plugin. Poți să-mi clarifici te rog unde este greșeala de tipar? Aparent CPT-ul meu funcționează bine, așa că nu înțeleg.

Scuze... acum am înțeles fraza. Ai scris "a post typo" în loc de "a post type". Așa că am crezut că e o greșeală de tipar din partea mea. Apropo, am instalat plugin-ul, care nu mai este în beta. Aspectul este diferit și nu găsesc rezultatul pentru is_page sau is_singular. Presupun că se află în secțiunea debug_hooks.

Da, a fost o greșeală din partea mea, acum am corectat la "type". Dacă ai instalat pluginul, vezi setările, activează subiectul condițional. Dacă ești pe partea de debug, dă click pe bug-ul din bara de administrare sau folosește parametrul din URL, documentat și pe pagina de setări.

Poți face astfel, pentru a direcționa fișierul single.php către diferite tipuri de articole.
Am două fișiere single.php denumite single-product.php și single-blogs.php.
Acum, în fișierul single.php am scris codul de mai jos pentru a redirecționa diferite articole în funcție de Tipul de Postare Personalizat
if (get_post_type('product'))
{
include (TEMPLATEPATH . '/single-product.php');
}
else
{
include (TEMPLATEPATH . '/single-blogs.php');
}
sau
if (is_singular('product'))
{
include (TEMPLATEPATH . '/single-product.php');
}
else
{
include (TEMPLATEPATH . '/single-blogs.php');
}
