Cómo mostrar información de categoría desde un post personalizado
He creado una página que utiliza posts personalizados: http://www.africanhealthleadership.org/resources/toolkit/
Cada herramienta (Preparación, Evaluación, etc.) es un post personalizado. En el Admin de WP, cada herramienta es una categoría; cada categoría tiene un campo "descripción". Me gustaría mostrar esas descripciones en la página del Toolkit. Intenté usar esto y no se mostró nada:
<?php echo category_description( $category ); ?>
Actualmente, las descripciones están hard-codeadas en la página. La de preparación comienza con "Las herramientas de preparación establecen..."
¡Gracias por cualquier idea! Jeff
Aquí está el loop que muestra el tipo de post personalizado:
<?php
query_posts( array( 'post_type' => 'portfolio', 'toolkit' => 'preparation' ) );
//el loop comienza aquí
if ( have_posts() ) : while ( have_posts() ) : the_post();
?>
<?php the_content(); ?>
<?php endwhile; endif; wp_reset_query(); ?>
Y aquí está el código de functions.php
add_action('init', 'portfolio_register');
function portfolio_register() {
$labels = array(
'name' => _x('Toolkit', 'nombre general del tipo de post'),
'singular_name' => _x('Herramienta', 'nombre singular del tipo de post'),
'add_new' => _x('Añadir Nueva Herramienta', 'herramienta'),
'add_new_item' => __('Añadir Nueva Herramienta'),
'edit_item' => __('Editar Herramienta'),
'new_item' => __('Nueva Herramienta'),
'view_item' => __('Ver Herramienta'),
'search_items' => __('Buscar en Toolkit'),
'not_found' => __('Nada encontrado'),
'not_found_in_trash' => __('Nada encontrado en la Papelera'),
'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" => "Categorías de Herramientas", "singular_label" => "Herramienta", "rewrite" => true));

Para obtener el término de taxonomía para este post en particular, lo que necesitas es wp_get_post_terms($post->ID, 'nombredetutaxonomia')
Esto devolverá un array de términos en la taxonomía especificada para el post indicado. La página del codex es: http://codex.wordpress.org/Function_Reference/wp_get_post_terms
Si buscas un término específico en una taxonomía usa get_term($taxonomy_name, $term_id). También puedes obtener todos los términos de una taxonomía usando get_terms()
Aquí tienes un ejemplo de cómo usarlo.
$terms = wp_get_post_terms($post->ID,'toolkit');
foreach ($terms as $term) {
echo $term->description;
}

En realidad, ahora estoy confundido. ¿Necesitas que la taxonomía de categoría normal esté adjunta a los custom posts, o solo necesitas mostrar descripciones para cada una de tus categorías (donde categoría significa un ítem en la taxonomía normal de categorías de WP)?

¡Disculpa por la confusión! Necesito las categorías que creé para los custom posts. Así que, es una taxonomía solo para estos posts. ¿Tiene sentido?

Gracias, Anu. Lamento ser un novato en php, pero probé esto y no obtuve nada: '<?php wp_get_post_terms('20', 'toolkit', 'description') ?>' ¿Debería haberlo dejado como '<?php wp_get_post_terms($post->ID, 'toolkit', 'description') ?>'?

Asegúrate de pasar el ID numérico de la categoría a la función category_description.
El valor de la variable $category no se llenará automáticamente, si eso es lo que esperabas. Necesitas establecerlo para cada categoría que muestres.
Si publicas el código relevante (el bucle que estás utilizando para mostrar esa lista de categorías), sería más fácil solucionar el problema.

Gracias, MathSmath, voy a intentar eso. ¡Estaba siendo un poco demasiado literal! El código está arriba, gracias de nuevo.

MathSmath, añadí lo siguiente y aún no obtengo la descripción de la categoría. ¿Estoy haciendo algo mal, verdad? <?php
query_posts( array( 'post_type' => 'portfolio', 'toolkit' => 'preparation' ) );
//el loop comienza aquí
if ( have_posts() ) : while ( have_posts() ) : the_post();
?>
<?php the_content(); ?>
<?php echo category_description('20'); ?>
<?php endwhile; endif; wp_reset_query(); ?>

Jeff, por favor añade el código del loop dentro de tu pregunta original ya que es mucho más fácil de leer allí.
