Mod de afișare a informațiilor categoriei dintr-un post personalizat

19 nov. 2010, 15:37:17
Vizualizări: 14.3K
Voturi: 2

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));
0
Toate răspunsurile la întrebare 2
5

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;  
}  
19 nov. 2010 19:29:11
Comentarii

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

anu anu
19 nov. 2010 21:29:23

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

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

am înțeles - voi edita răspunsul meu cu ceea ce cred că ai nevoie

anu anu
19 nov. 2010 23:07:16

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

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

Am adăugat un fragment de cod rapid

anu anu
21 nov. 2010 20:05:58
4

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.

19 nov. 2010 19:00:48
Comentarii

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

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

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 Tancil Jeff Tancil
19 nov. 2010 22:34:11

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

hakre hakre
20 nov. 2010 00:12:03

Cred că category_description() funcționează doar pentru taxonomia implicită a categoriei - nu și pentru o taxonomie personalizată

anu anu
21 nov. 2010 15:37:36