Post In Rilievo Con Campi Personalizzati
Grazie alle query personalizzate ed alla personalizzazione del loop su WordPress è possibile far visualizzare i post di una data categoria che vogliamo mettere in rilievo utilizzando l’ aggiunta di un campo personalizzato.
Prendiamo per assunto che:
- la categoria abbia ID 5;
- al campo personalizzato daremo il nome di “rilievo” e il valore che dovrà assumere sarà “si” o “no”;
- vogliamo far visualizzare gli ultimi 10 post con le su citate caratteristiche;
Il loop da inserire per esmpio creando un template personalizzato da fornire ad una pagina ingloberà questa query:
<?php global $wpdb; global $post; $querystr = " SELECT * FROM $wpdb->posts as wpp INNER JOIN $wpdb->postmeta wpostmeta ON wpp.ID = wpostmeta.post_id INNER JOIN $wpdb->term_relationships ON (wpp.ID = $wpdb->term_relationships.object_id) INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) WHERE wpostmeta.meta_key = 'rilievo' AND wpp.post_status = 'publish' AND wpostmeta.meta_value = 'si' AND $wpdb->term_taxonomy.taxonomy = 'category' AND $wpdb->term_taxonomy.term_id IN(5) ORDER BY wpp.ID LIMIT 10"; $pageposts = $wpdb->get_results($querystr); ?>
Il codice del loop che andremo ad utilizzare verrà inserito subito dopo alla query sopra citata:
<?php if ($pageposts): ?> <?php foreach ($pageposts as $post): ?> <?php setup_postdata($post); ?> <div> <h2><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h2> <p><?php print string_limit_words(get_the_excerpt(), 16); ?>...</p> </div> <?php endforeach; ?> <?php endif; ?>
Sia chiaro che con questo post non voglio dare la soluzione, ma una delle possibili idee per risolvere il problema e quindi se qualcuno volesse commentare o dire la sua i commenti sono aperti
NOTA: il codice è stato testato su WordPress 2.9.1