Come visualizzare le informazioni della categoria da un custom post
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));

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;
}

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)?

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?

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') ?>' ?

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.

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

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, per favore aggiungi il codice del loop nella tua domanda originale perché è molto più leggibile così.
