Neclaritate archive.php – template hierarchy
-
Contextul:
Am creat un plugin, apoi, un custom post type care imi afiseaza niste text; tema folosita este twentytwelve – modificata.
Din ce am citit pe codex.org:
In general, WP foloseste fisierul archive.php din tema pentru a genera o lista de posturi. Putem insa folosi un fisier numit archive-{post type}.php pentru a crea diferite layout-uri pentru diferite posturi.
Din ce am citit, se face o copie a fisierului archive.php, apoi se schimba denumirea ( de ex, archive-wp_question.php ), dupa care se fac modificari, dupa plac.
Fisierul asta, archive.php are, printre altele, urmatoarele linii :while ( have_posts() ) : the_post(); get_template_part( 'content', get_post_format() ); endwhile;
Tema activata foloseste un template separat pentru a genera continutul fiecarui custom post type. Si atunci, nu modific fisierul content.php, ci il copiez, ii schimb denumirea in content-questions.php, apoi fac modificarile necesare aici.
Apoi, in fisierul archive-wp_question.php, inlocuiesc in functia get_template_part() parametrul $slug, respectiv inlocuiesc ‘content’ cu ‘content-questions’.
Acum, mie nu mi se afiseaza nimic in homepage, decat (‘There are no posts to display’). Ca sa rezolv asta, am introdus urmatoarea linie in fisierul index.php al temei:
query_posts('post_type=wp_question');
Cu asta se pare ca problema afisarii custom-posturilor e rezolvata ( desi mi se pare o solutie proasta).
Acum vine problema de care ma lovesc, cea de hierarchy (cred): se pare ca nenea wp nu ‘vede’ fisierul archive-wp_questions.php ( nu prelucreaza modificarile scrise acolo), ci doar daca modific index.php:
O data, cuquery_posts('post_type=wp_question');
, apoi sa modific `<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( ‘content’, get_post_format() ); ?>
<?php endwhile; ?>`
cu<?php while ( have_posts() ) : the_post(); ?> <?php get_template_part( 'content-questions', get_post_format() ); ?> <?php endwhile; ?>
In cazul asta, posturile mele sunt afisate exact cum vreau. Altfel, nu mi se afiseaza deloc.
Ma gandesc ca problema e laquery_posts('post_type=wp_question');
.. sau.. inca nu-mi dau seama..Care e problema ?
P.S. Stiu ca am scris mult ( si probabil prost ) dar sunt la inceput, si daca as sti exact cum sa pun problema, probabil as gasi si raspunsul.. indurare :P.
- Subiectul „Neclaritate archive.php – template hierarchy” este închis pentru răspunsuri noi.