Cum pot crea un șablon de pagină pentru a afișa un tip personalizat de postare?

3 feb. 2012, 09:35:56
Vizualizări: 56.6K
Voturi: 2

Vreau să creez un fișier șablon de pagină pentru a afișa postări dintr-un tip de conținut personalizat. Am lucrat cu acest cod pe care l-am găsit pe acest site, dar nu afișează nimic. Știe cineva care este problema?

<?php /* Nume Șablon: Arhivă Tip Postare Personalizată */
get_header(); ?>

<?php
global $query_string;
query_posts($query_string . "post_type=TIPUL-TAU-DE-POSTARE&post_status=publish&posts_per_page=10");
if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

<h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>

<?php endwhile;
endif; ?>
<div class="navigation">
    <div class="alignleft"><?php next_posts_link('Postări anterioare') ?></div>
    <div class="alignright"><?php previous_posts_link('Postări următoare') ?></div>
</div>
<?php wp_reset_query(); ?>

<?php get_sidebar(); ?>
<?php get_footer();?>
0
Toate răspunsurile la întrebare 3
2

Nu este nevoie să folosești o interogare, pur și simplu creează-ți șablonul și numește-l single-NUMELEPOSTULUITAU.php, pentru mai multe referințe consultă:

3 feb. 2012 10:05:59
Comentarii

Nu sunt sigur că te-am înțeles. Poți să explici puțin mai detaliat răspunsul tău?

Keith Groben Keith Groben
3 feb. 2012 10:13:57

șablonul implicit pentru un tip de postare personalizat este single-NAME.php, deci să presupunem că tipul tău de postare personalizat se numește "Sports", deci trebuie să creezi acel șablon și să îl salvezi ca single-sports.php. Ai deja tema creată, trebuie doar să ștergi acea interogare de la linia 5 și să lași bucla (loop) așa cum este. De asemenea, observă că link-urile next și prev nu vor funcționa deoarece acele funcții nu lucrează cu CPT (Custom Post Types), dar există unele plugin-uri pentru asta, Google este prietenul tău.

andresmijares andresmijares
3 feb. 2012 10:20:40
3

Dacă ați creat un nou Tip de Postare Personalizată (Custom Post Type), pentru a le afișa pe site trebuie să utilizați următoarele fișiere în folderul temei:

  • archive-{CPT}.php
  • single-{CPT}.php (Opțional dacă doriți să afișați un singur post diferit)

Înlocuiți {CPT} cu numele Tipului de Postare Personalizată pe care l-ați configurat. Apoi, în aceste fișiere, faceți un loop normal ca în fișierul index.php.

Exemplu:

<?php get_header(); ?>

    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

        <?php /* Conținutul Postărilor */ ?>

    <?php endwhile; else: ?>
        <div class="post">
            <p><?php _e('Ne pare rău, nicio postare nu corespunde criteriilor dumneavoastră.', "hi-rezz"); ?></p>
        </div>
    <?php endif; ?>

<?php get_footer(); ?>
3 feb. 2012 10:40:15
Comentarii

Mulțumesc pentru explicația detaliată. Te rog să ai răbdare cu mine, deoarece sunt relativ nou în acest tip de modificări în WordPress. CPT-ul meu este "New Movies". Slug-ul pentru acesta este "new_movies". Fișierul de arhivă este "archive-new_movies.php". Apoi pun codul loop în fișierul de arhivă?

Keith Groben Keith Groben
3 feb. 2012 10:54:00

Ar fi corect

Scott Scott
3 feb. 2012 11:04:40

Am adăugat codul loop și tot ce văd este un permalink către pagină. Așadar, am copiat pagina de arhivă implicită și tot am primit același rezultat. Ai vreo idee de ce se poate întâmpla asta?

Keith Groben Keith Groben
3 feb. 2012 11:43:31
1
-1
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

    <?php /* Conținutul articolelor tale */ ?>

<?php endwhile; else: ?>
    <div class="post">
        <p><?php _e('Ne pare rău, nu s-au găsit articole care să corespundă criteriilor tale.', "hi-rezz"); ?></p>
    </div>
<?php endif; ?>
31 mai 2017 15:07:49
Comentarii

Te rog [modifică] răspunsul tău și adaugă o explicație: de ce ar putea soluționa problema?

fuxia fuxia
31 mai 2017 17:02:34