Afișarea imaginilor reprezentative din tipurile de postări personalizate în șablonul paginii principale
Lucrez cu underscores și încerc să construiesc propriul meu șablon.
Am construit un șablon pentru pagina principală și, de asemenea, un fișier single-post pentru tipurile de postări personalizate.
Ceea ce încerc să obțin este să afișez în pagina principală un fel de galerie cu imaginile reprezentative din fiecare tip de postare personalizată, împreună cu titlul și etichetele.
Am încercat diferite modalități, am presupus că ar fi ceva cu wp_get_archives
dar tot nu am reușit.
Dacă aveți sugestii ar fi minunat.
Mulțumesc!
Folosirea funcției wp_get_archives
va returna un șablon pre-definit pentru rezultate. Pentru a obține rezultate personalizate, ai nevoie de o interogare și un șablon personalizat. Deoarece nu știu exact ce cauți, voi oferi o sugestie de cod de bază pentru situația ta:
// Obține o listă de categorii
$terms = get_terms(array('taxonomy' => 'category'));
// Rulează o interogare pentru fiecare categorie
foreach ($terms as $term){
$args = array(
'post_type' => 'custom_type',
'posts_per_page' => '1',
'order_by' => 'date',
'order' => 'ASC',
'cat' => $term->ID
);
$new_query = new WP_Query ($args);
if ($new_query->have_posts()) {
while($new_query->have_posts()){
$new_query->the_post();
// Titlul articolului
the_title();
// Imaginea reprezentativă a articolului
the_post_thumbnail('thumbnail');
}
}
wp_reset_postdata();
}
Acest cod va afișa 1 articol din fiecare categorie, împreună cu imaginea reprezentativă și titlul acestuia. Totuși, va genera multe interogări dacă ai multe categorii (de exemplu, 50 sau mai multe). Recomand să folosești acest cod împreună cu un plugin de cache.
De asemenea, poți obține o listă de articole și să le afișezi într-un showcase, împreună cu numele categoriei:
$args = array(
'post_type' => 'custom_type', // Tipul tău personalizat de articol
'posts_per_page' => '8', // Schimbă numărul după preferințe
'order_by' => 'date', // Opțional - sortează după dată
'order' => 'ASC',
);
$new_query = new WP_Query ($args);
if ($new_query->have_posts()) {
while($new_query->have_posts()){
$new_query->the_post();
the_title();
the_post_thumbnail('thumbnail');
// Obține o listă de categorii pentru articol
$categories = get_the_category($post->ID);
foreach ($categories as $category) {
echo $category->name;
}
}
}
wp_reset_postdata();

Puteți utiliza bucla WordPress care este disponibilă în orice temă. Iată fragmentul de cod de bază. Copiați acest cod în fișierul paginii principale și verificați dacă rezultatul este cel așteptat:
<?php if( have_posts() ) : ?>
<?php while (have_posts()) : the_post(); ?>
<div class="blog">
<h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
<hr />
<div class="text-box">
<?php
if( has_post_thumbnail() ) {
echo '<div style="float:left;">';
the_post_thumbnail('thumbnail');
echo '</div>';
}
?>
</div>
</div>
<?php endwhile; ?>
<?php endif; ?>
Acesta este codul din tema mea copil.
