Come visualizzare le informazioni della categoria da un custom post

19 nov 2010, 15:37:17
Visualizzazioni: 14.3K
Voti: 2

Ho creato una pagina che utilizza custom post: http://www.africanhealthleadership.org/resources/toolkit/

Ogni strumento (Preparazione, Valutazione, ecc.) è un custom post. Nell'admin di WP, ogni strumento è una categoria; ogni categoria ha un campo "descrizione". Vorrei mostrare quelle descrizioni nella pagina Toolkit. Ho provato a usare questo ma non mostra nulla: <?php echo category_description( $category ); ?>

Attualmente le descrizioni sono hard-codate nella pagina. Quella per la preparazione inizia con "Preparation tools establish..."

Grazie per qualsiasi idea! Jeff


Ecco il loop che mostra il custom post type:

<?php
query_posts( array( 'post_type' => 'portfolio', 'toolkit' => 'preparation' ) );
//the loop start here
if ( have_posts() ) : while ( have_posts() ) : the_post();
?>
<?php the_content(); ?>
<?php endwhile; endif; wp_reset_query(); ?>

Ed ecco il codice da functions.php

add_action('init', 'portfolio_register');

function portfolio_register() {

$labels = array(
    'name' => _x('Toolkit', 'post type general name'),
    'singular_name' => _x('Tool', 'post type singular name'),
    'add_new' => _x('Add New Tool', 'tool'),
    'add_new_item' => __('Add New Tool'),
    'edit_item' => __('Edit Tool'),
    'new_item' => __('New Tool'),
    'view_item' => __('View Tool'),
    'search_items' => __('Search Toolkit'),
    'not_found' =>  __('Nothing found'),
    'not_found_in_trash' => __('Nothing found in Trash'),
    'parent_item_colon' => ''
);

$args = array(
    'labels' => $labels,
    'public' => true,
    'publicly_queryable' => true,
    'show_ui' => true,
    'query_var' => true,
    'menu_icon' => get_stylesheet_directory_uri() . '/article16.png',
    'rewrite' => true,
    'capability_type' => 'post',
    'hierarchical' => false,
    'menu_position' => null,
    'supports' => array('title','editor','thumbnail')
  ); 

register_post_type( 'portfolio' , $args );
}

register_taxonomy("toolkit", array("portfolio"), array("hierarchical" => true,   "label"     => "Tool Categories", "singular_label" => "Tool", "rewrite" => true));
0
Tutte le risposte alla domanda 2
5

Per ottenere il termine della tassonomia per questo particolare articolo, quello che ti serve è wp_get_post_terms($post->ID, 'nomedellatassonomia')

Questo restituirà un array di termini nella tassonomia specificata per l'articolo indicato. La pagina del codex è: http://codex.wordpress.org/Function_Reference/wp_get_post_terms

Se stai cercando un termine specifico in una tassonomia, usa get_term($nome_tassonomia, $id_termine). Puoi anche ottenere tutti i termini di una tassonomia usando get_terms()

Ecco un esempio di come utilizzarlo.

$terms = wp_get_post_terms($post->ID,'toolkit');  
foreach ($terms as $term) {  
    echo $term->description;  
}  
19 nov 2010 19:29:11
Commenti

In realtà, ora sono confuso. Hai bisogno che la normale tassonomia delle categorie sia associata ai post personalizzati, o ti serve semplicemente visualizzare le descrizioni per ognuna delle tue categorie (dove per categoria si intende un elemento nella normale tassonomia delle categorie di WP)?

anu anu
19 nov 2010 21:29:23

Scusa per la confusione! Ho bisogno delle categorie che ho creato per i post personalizzati. Quindi, è una tassonomia specifica solo per questi post. Ha senso?

Jeff Tancil Jeff Tancil
19 nov 2010 22:33:36

capito - modifico la mia risposta con quello che penso ti serva

anu anu
19 nov 2010 23:07:16

Grazie, Anu. Scusa se sono un po' imbranato con PHP, ma ho provato questo e non ho ottenuto nulla: '<?php wp_get_post_terms('20', 'toolkit', 'description') ?>' avrei dovuto lasciarlo come '<?php wp_get_post_terms($post->ID, 'toolkit', 'description') ?>' ?

Jeff Tancil Jeff Tancil
21 nov 2010 17:44:20

Aggiunto un rapido frammento di codice

anu anu
21 nov 2010 20:05:58
4

Assicurati di passare l'ID numerico della categoria alla funzione category_description.

Il valore della variabile $category non si popolerà automaticamente, se è questo che ti aspettavi. Devi impostarlo manualmente per ogni categoria che visualizzi.

Se pubblichi il codice rilevante (il loop che usi per generare la lista delle categorie), sarà più semplice risolvere il problema.

19 nov 2010 19:00:48
Commenti

Grazie, MathSmath, proverò così. Ero un po' troppo letterale! Il codice è sopra, grazie ancora.

Jeff Tancil Jeff Tancil
19 nov 2010 19:57:49

MathSmath, ho aggiunto quanto segue ma ancora non ottengo la descrizione della categoria. Sto facendo qualcosa di stupido, vero? <?php query_posts( array( 'post_type' => 'portfolio', 'toolkit' => 'preparation' ) ); //il loop inizia qui if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <?php the_content(); ?> <?php echo category_description('20'); ?> <?php endwhile; endif; wp_reset_query(); ?>

Jeff Tancil Jeff Tancil
19 nov 2010 22:34:11

Jeff, per favore aggiungi il codice del loop nella tua domanda originale perché è molto più leggibile così.

hakre hakre
20 nov 2010 00:12:03

Penso che category_description() funzioni solo per la tassonomia predefinita delle categorie - non per una tassonomia personalizzata

anu anu
21 nov 2010 15:37:36