Nu primesc postări din tipurile personalizate de postări
Am creat un șablon personalizat și încerc să obțin postări de tipul "song", dar pe pagină apar doar header-ul și footer-ul. Conținutul postărilor nu apare. Chiar dacă încerc să afișez postări obișnuite, tot nu apare conținut. Trebuie să înregistrez acest șablon undeva în tema? Sau trebuie să apelez ceva aici?
Codul meu:
<?php
/* Șablon Nume: Pagină Song
*
* Selectabil dintr-un meniu dropdown pe ecranul de editare a paginii.
*/
get_header(); ?>
<div>
<?php
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
query_posts( 'post_type=song');
} // sfârșit while
} // sfârșit if
?></div>
<?php get_footer(); ?>
Vă rog să mă ajutați să corectez codul meu. Vreau să afișez toate postările din custom post type "songs". Am creat deja tipul personalizat de postare.
Introduc codul de mai sus în editorul WordPress, am instalat un plugin numit "PHP execution" care execută codul PHP.

Aveți două probleme majore în codul dumneavoastră:
query_posts
trebuie să fie plasat înainte de bucla dumneavoastră, nu în interiorul eiNu utilizați niciodată
query_posts
decât dacă aveți nevoie să stricați ceva pe pagina dumneavoastră
Pentru a afla de ce să nu folosiți query_posts
și când să utilizați o interogare personalizată și cum să o folosiți, consultați acest articol pe care l-am scris acum ceva timp
Deci, pentru a corecta codul din șablonul dumneavoastră, vom folosi WP_Query
și nu query_posts
, și vom face interogarea înainte de buclă
Încercați ceva de genul:
<?php
/* Șablon Nume: Pagină Melodii
*
* Selectabil dintr-un meniu derulant pe ecranul de editare a paginii.
*/
?>
<?php get_header(); ?>
<div>
<?php
$args = array(
'post_type' => 'song' // Tipul postării: melodie
);
$q = new WP_Query($args);
if ( $q->have_posts() ) {
while ( $q->have_posts() ) {
$q->the_post();
//Adăugați etichetele șablonului ca mai jos
the_title(); // Afișează titlul postării
} // sfârșit while
wp_reset_postdata(); // Resetează datele postării
} // sfârșit if
?>
</div>
De asemenea, nu uitați niciodată să resetați interogările personalizate dacă ați folosit bucla sau setup_postdata($post)
cu wp_reset_postdata()

Mulțumesc mult pentru răspuns, folosind codul de mai sus primesc doar numele postării, dar eu trebuie să afișez titlul postării cu thumbnail și puțin conținut, deci ar trebui să folosesc the_content()
?

Da, ar trebui să adaugi orice ai nevoie, acesta este doar un exemplu de bază. Pentru conținut, va trebui să adaugi the_content();
. Totodată, va trebui să adaugi și toată structura HTML. Această parte depinde de preferințele personale, ceva cu care nu te pot ajuta :-)

Pentru o structură de bază a template-ului, poți arunca o privire peste temele incluse precum twentyfifteen. Acestea ar trebui să îți ofere un punct bun de plecare

Cum pot apela stilul CSS implicit al postărilor pentru această postare personalizată? Vreau doar ca postarea mea personalizată să fie afișată corect, la fel ca o postare normală, în ceea ce privește stilul/CSS-ul.

Pur și simplu copiază bucla ta între partea while din index.php și adaug-o în bucla de aici. După cum am spus, aceasta este o secțiune de preferințe personale pe care va trebui să o rezolvi singur, din păcate. Nu pot să știu niciodată stilurile temei tale. De aceea această secțiune este off topic aici :-)

Nu este necesar să creați șabloane personalizate dacă doriți doar să afișați toate paginile într-o arhivă pentru tipul personalizat de postare (CPT):
Pur și simplu accesați http://example.com/melodii iar WordPress va afișa toate paginile CPT într-o arhivă standard conform ierarhiei de șabloane. Înlocuiți example.com cu domeniul dumneavoastră.
Este posibil să fie necesară salvarea din nou a Legăturilor permanente pentru a reseta regulile de rescriere și să includeți următorii parametri în funcția register_post_type:
'has_archive' => true,
'rewrite' => array( 'slug' => 'melodii', 'with_front' => false ),
Dacă doriți să creați o pagină personalizată pentru arhiva CPT, creați un fișier nou și denumiți-l archive-melodie.php în directorul rădăcină al temei dumneavoastră.

Ai încercat 'post_type' => 'songs'
?
Referință: Interogare după Tipul Postării
