În cazul în care se doreşte afişarea unei liste de articole, cu tot cu miniatura imaginii, s-ar putea să apară un conflict cum am tot păţit, astfel că, în loc de genul „Notice: Trying to get property ‘ID’ of non-object in /wp-includes/post-thumbnail-template.php on line 101„, motivul fiind cauzat, deseori, de existenţa unui anume plugin.
În aceste circumstanţe, se poate crea o pagină proprie, în care se poate introduce codul, ca în acest exemplu, unde 80 este id-ul categoriei, iar numărul de articole este ales la 5:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php $ctg_art = get_posts('cat=80&numberposts=5'); FOREACH ($ctg_art as $post) { setup_postdata($post);?> <table style="margin:0;padding:0px;"> <tr> <td style="width:90px; vertical-align: top;margin:0;padding:0"> <a href="<?php the_permalink() ?>" ><?php the_post_thumbnail('thumbnail'); ?></a> </td> <td style="vertical-align: top;margin:0;padding:0px"> <span class="" ><?php the_time( get_option( 'date_format' ) ); ?> <i class="fa fa-arrow-circle-down"></i> </span> <br><a href="<?php the_permalink() ?>" ><?php the_title(); ?></a> </td> </tr> </table><?php } ?> |
Desigur, valoarea din expresia cat=80, poate fi setat pentru categoria vizată. De asemenea, dacă în loc de numberposts=5 se alege, de exemplu, valoarea -1, în loc de cinci articole (precum în imagine) vor fi redate toate articolele. În exemplul prezentat, am urmărit să creez un tabel de articole, cu prima coloană conţinând imaginea, iar în cea de-a doua, data publicării şi titlul. Evident că, dacă se dorea puteam invoca şi rezumatul (excerpt).
O altă variantă este şi următoarea, introdusă într-un template de pagină.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<?php /** * Template Name: Categoria Utilitati * Template Post Type: post, page, product * Author: SOY * Created on: 04/09/2022 */ $args = array( 'post_type' => 'post', 'post_status' => 'publish', 'category_name' => 'utilitati', 'posts_per_page' => -1, ); $rez_posts = new WP_Query( $args ); IF ( $rez_posts->have_posts() ) { ECHO '<h1>'; single_term_title('' , true ); ECHO '</h1>'; WHILE ( $rez_posts->have_posts() ) { $rez_posts->the_post(); ?> <ul> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> </ul><?php } }?> |
Ca alternativă pentru category_name, se pot folosi
- cat (int): folosește id-ul categoriei.
- category_name (șir): utilizați categoria slug (NU numele).
- category__and (matrice – array): utilizați id-ul categoriei.
- category__in (matrice): utilizați id-ul categoriei.
- category__not_in (matrice): utilizați id-ul categoriei.
Surse: ArtisansWeb, EnvatoTuts+
Interesant este şi articolul de pe WPbeginner.com privind crearea unui shortcode care să redea conţinutul unei anumite categorii.