Tag-ul conditional is_page cu un tip personalizat de postare

29 apr. 2014, 20:39:07
Vizualizări: 9.74K
Voturi: 2

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:

  1. is_page ar trebui să funcționeze în acest caz?
  2. dacă nu, care este cea mai bună alternativă?

Mulțumesc, Andrea

0
Toate răspunsurile la întrebare 2
4

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. Rezultatul etichetelor condiționale în plugin-ul Debug Objects

29 apr. 2014 20:49:09
Comentarii

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.

Andrea Moro Andrea Moro
30 apr. 2014 06:40:08

La ce greșeală de tipar te referi?

bueltge bueltge
30 apr. 2014 14:01:15

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.

Andrea Moro Andrea Moro
1 mai 2014 06:51:36

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.

bueltge bueltge
2 mai 2014 18:41:18
1

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');
}
10 apr. 2018 10:25:17
Comentarii

Dacă încărcați fișiere de șabloane, cea mai bună practică ar fi să utilizați get_template_part(), în loc de include.

Jacob Peattie Jacob Peattie
10 apr. 2018 11:04:12