Mod de afișare a informațiilor categoriei dintr-un post personalizat
Am creat o pagină care folosește postări personalizate: http://www.africanhealthleadership.org/resources/toolkit/
Fiecare unealtă (Pregătire, Evaluare etc.) este o postare personalizată. În WP Admin, fiecare unealtă este o categorie; fiecare categorie are un câmp "descriere". Aș dori să afișez aceste descrieri pe pagina Toolkit. Am încercat să folosesc asta și nu s-a afișat nimic:
<?php echo category_description( $category ); ?>
Momentan, descrierile sunt hardcodate în pagină. Cea pentru pregătire începe "Unelele de pregătire stabilesc..."
Mulțumesc pentru orice idei! Jeff
Iată loop-ul care afișează tipul de postare personalizată:
<?php
query_posts( array( 'post_type' => 'portfolio', 'toolkit' => 'preparation' ) );
//loop-ul începe aici
if ( have_posts() ) : while ( have_posts() ) : the_post();
?>
<?php the_content(); ?>
<?php endwhile; endif; wp_reset_query(); ?>
Și iată codul din functions.php
add_action('init', 'portfolio_register');
function portfolio_register() {
$labels = array(
'name' => _x('Toolkit', 'nume general tip post'),
'singular_name' => _x('Unealtă', 'nume singular tip post'),
'add_new' => _x('Adaugă Unealtă Nouă', 'unealtă'),
'add_new_item' => __('Adaugă Unealtă Nouă'),
'edit_item' => __('Editează Unealta'),
'new_item' => __('Unealtă Nouă'),
'view_item' => __('Vezi Unealta'),
'search_items' => __('Caută în Toolkit'),
'not_found' => __('Nimic găsit'),
'not_found_in_trash' => __('Nimic găsit în Gunoi'),
'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" => "Categorii Unelte", "singular_label" => "Unealtă", "rewrite" => true));

Pentru a obține termenii de taxonomie pentru un anumit articol, ceea ce ai nevoie este wp_get_post_terms($post->ID, 'numeletaxonomieitale')
Aceasta va returna un array de termeni din taxonomia specificată pentru articolul specificat. Pagina codex este: http://codex.wordpress.org/Function_Reference/wp_get_post_terms
Dacă cauți un anumit termen dintr-o taxonomie, folosește get_term($nume_taxonomie, $id_termen). Poți de asemenea obține toți termenii pentru o taxonomie folosind get_terms()
Iată un exemplu despre cum să-l folosești.
$terms = wp_get_post_terms($post->ID,'toolkit');
foreach ($terms as $term) {
echo $term->description;
}

De fapt, acum sunt confuz. Ai nevoie ca taxonomia normală de categorii să fie atașată la postările personalizate, sau doar să afișezi descrieri pentru fiecare dintre categoriile tale (unde prin categorie înțelegi un element din taxonomia normală WP de categorii)?

Îmi pare rău pentru confuzie! Am nevoie de categoriile pe care le-am creat pentru postările personalizate. Deci, este o taxonomie specială doar pentru aceste postări. Are sens acum?

Mulțumesc, Anu. Îmi pare rău că sunt un novice în PHP, dar am încercat asta și nu am obținut nimic: '<?php wp_get_post_terms('20', 'toolkit', 'description') ?>' Ar fi trebuit să o las ca '<?php wp_get_post_terms($post->ID, 'toolkit', 'description') ?>' ?

Asigură-te că transmiți ID-ul numeric al categoriei în funcția category_description.
Valoarea variabilei $category nu se va completa automat, dacă asta te așteptai. Trebuie să o setezi pentru fiecare categorie pe care o afișezi.
Dacă postezi codul relevant (bucla pe care o folosești pentru a afișa acea listă de categorii), ar fi mai ușor să depanăm problema.

Mulțumesc, MathSmath, voi încerca asta. Am fost puțin cam literal! Codul este mai sus, mulțumesc din nou.

MathSmath, am adăugat următoarele și tot nu primesc descrierea categoriei. Fac ceva greșit, nu-i așa? <?php
query_posts( array( 'post_type' => 'portfolio', 'toolkit' => 'preparation' ) );
//bucla începe aici
if ( have_posts() ) : while ( have_posts() ) : the_post();
?>
<?php the_content(); ?>
<?php echo category_description('20'); ?>
<?php endwhile; endif; wp_reset_query(); ?>

Jeff, te rog adaugă codul buclei în întrebarea ta originală, este mult mai ușor de citit așa.
