Как вывести информацию о категории для пользовательского типа записи
Я создал страницу, которая использует пользовательские записи: http://www.africanhealthleadership.org/resources/toolkit/
Каждый инструмент (Preparation, Assessment и т.д.) является пользовательской записью. В админке WP каждый инструмент - это категория; у каждой категории есть поле "description". Я хочу вывести эти описания на странице Toolkit. Я пробовал использовать это, но ничего не отображается:
<?php echo category_description( $category ); ?>
Сейчас описания жестко прописаны в странице. Например, для preparation начинается так: "Preparation tools establish..."
Спасибо за любые идеи! Джефф
Вот цикл, который выводит пользовательский тип записи:
<?php
query_posts( array( 'post_type' => 'portfolio', 'toolkit' => 'preparation' ) );
// начало цикла
if ( have_posts() ) : while ( have_posts() ) : the_post();
?>
<?php the_content(); ?>
<?php endwhile; endif; wp_reset_query(); ?>
И вот код из 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));

Чтобы получить термины таксономии для конкретной записи, вам понадобится функция wp_get_post_terms($post->ID, 'ваша_таксономия')
Эта функция вернет массив терминов указанной таксономии для указанной записи. Страница в кодексе: http://codex.wordpress.org/Function_Reference/wp_get_post_terms
Если вам нужен конкретный термин в таксономии, используйте get_term($название_таксономии, $id_термина). Также вы можете получить все термины таксономии с помощью get_terms()
Вот пример использования:
$terms = wp_get_post_terms($post->ID,'toolkit');
foreach ($terms as $term) {
echo $term->description;
}

Честно говоря, я сейчас запутался. Вам нужно, чтобы обычная таксономия категорий была привязана к пользовательским записям, или вам просто нужно выводить описания для каждой из ваших категорий (где под категорией подразумевается элемент стандартной таксономии категорий WP)?

Извините за путаницу! Мне нужны категории, которые я создал для пользовательских записей. То есть это таксономия только для этих записей. Теперь понятнее?

Понял - редактирую свой ответ, добавляя то, что, как мне кажется, вам нужно

Спасибо, Ану. Извини за глупый вопрос по php, но я попробовал это и ничего не получил: '<?php wp_get_post_terms('20', 'toolkit', 'description') ?>' Может, нужно было оставить как '<?php wp_get_post_terms($post->ID, 'toolkit', 'description') ?>' ?

Убедитесь, что вы передаете числовой идентификатор категории в функцию category_description.
Значение переменной $category не заполнится автоматически, если вы ожидали этого. Вам нужно установить его для каждой выводимой категории.
Если вы опубликуете соответствующий код (цикл, который вы используете для вывода этого списка категорий), будет проще найти и исправить проблему.

Спасибо, MathSmath, я попробую это сделать. Я был слишком буквален! Код выше, еще раз спасибо.

MathSmath, я добавил следующее, но описание категории все равно не выводится. Я делаю что-то глупое, верно? <?php
query_posts(array('post_type' => 'portfolio', 'toolkit' => 'preparation'));
//начало цикла
if (have_posts()) : while (have_posts()) : the_post();
?>
<?php the_content(); ?>
<?php echo category_description('20'); ?>
<?php endwhile; endif; wp_reset_query(); ?>

Jeff, пожалуйста, добавьте код цикла в ваш исходный вопрос, так его будет гораздо удобнее читать.
