Pagină index pentru custom post type
Am înregistrat un custom post type și vreau să creez o pagină unde voi lista unele articole, va fi ca o pagină de index.
Am creat o pagină de arhivă numită mycpt-archive.php și o pagină numită myCPT.php.
Am adăugat un URL personalizat în meniu numit "myCPT" astfel: www.mywebsite.com/mycpt Acum, când dau click din meniul front-end pe "myCPT", afișează conținutul din mycpt-archive.php și nu din myCPT.php.
Am verificat ierarhia de șabloane din CODEX și pare că sunt pe drumul cel bun.
Când dau click pe "myCPT" din meniul front-end, pagina afișată este mycpt-archive.php și nu myCPT.php cum mă așteptam să se deschidă.
Ce am omis aici? Mulțumesc!
Dacă ai:
register_post_type( 'my_custom_post_type', $args );
Și ai nevoie de o pagină personalizată care să afișeze toate intrările din acest tip de postare personalizată, trebuie să creezi: archive-my_custom_post_type.php
.
Dar dacă nu ai nevoie de o pagină personalizată, WordPress va folosi archive.php pentru a afișa arhiva tipului tău de postare personalizată.
Dacă ai nevoie doar să personalizezi pagina unei intrări, trebuie să creezi: single-my_custom_post_type.php
Unde creezi tipul de postare personalizată, în functions.php al temei sau folosind un plugin?
Dacă folosești functions.php, trebuie să creezi archive-my_custom_post_type.php
sau single-my_custom_post_type.php
în directorul temei.
Dacă folosești un plugin, trebuie să creezi archive-my_custom_post_type.php
sau single-my_custom_post_type.php
în directorul pluginului și să indici WordPress-ului să le citească, așa că include această funcție în pluginul tău:
function get_custom_post_type_template($template) { global $post; if ($post->post_type == 'my_custom_post_type') { $template = dirname( __FILE__ ) . '/archive-my_custom_post_type.php'; } return $template; } //add_filter( "single_template", "get_custom_post_type_template" ); //pentru pagina single add_filter( "archive_template", "get_custom_post_type_template" ); //pentru arhivă

Sună aproape ca și cum ai crea o pagină de șablon personalizată numită cum dorești și ai introduce codul de interogare personalizat pe care îl dorești în acea pagină de șablon specifică. După ce ai creat pagina de șablon, creează o pagină WordPress reală și setează-o să utilizeze acea pagină de șablon personalizată. Are sens?
- Crează o pagină de șablon personalizată.
- Adaugă comentariile necesare pentru a denumi pagina de șablon.
- Scrie interogarea personalizată wp_query pentru a extrage postările specifice pe care le dorești.
- Crează o pagină în WordPress.
- Setează-o să utilizeze pagina de șablon pe care ai creat-o.
- Apasă publicare.
După ce ai terminat, probabil vei dori să editezi pagina de șablon pentru a ajusta și perfecționa interogarea ta.
Spune-mi dacă sunt pe drumul cel bun pentru nevoile tale.

Am creat un fișier șablon, dar nu îl pot atribui din panoul de control, funcționează doar pentru paginile normale, nu și pentru paginile de tip post personalizat.

Îmi cer scuze pentru întârzierea în răspuns. Va trebui să creezi un wp_query() personalizat în interiorul șablonului cu propriul său loop. Ai putea face ceva de genul:
`$postTypeQuery = new wp_query( array('post_type'=> 'postTypeSlug'));
if($postTypeQuery->have_posts()){ while($postTypeQuery->have_post(){ $postTypeQuery->the_post(); echo get_the_title(); echo get_the_id(); echo get_the_content(); } }`
