web-dev-qa-db-ja.com

プライマリカテゴリの投稿を取得

投稿のプライマリセットカテゴリの取得に問題があります。どうすればこれを達成できますか?

私のコード:

global $post;
$terms = get_the_terms( $post->ID, 'event-categories');

if($terms) {
    foreach( $terms as $term ) {
        $cat_obj = get_term($term->term_id, 'event-categories');
        $cat_slug = $cat_obj->slug;
    }
}

そして私のHTMLで

<div class="post_kachel <?php echo $cat_slug; ?>">
1
SengelYTPI

どうぞ。これをfunctions.phpに追加し、任意の場所から呼び出します。

関数get_post_primary_category($ post_id、$ term = 'category'、$ return_all_categories = false){
 $ return = array(); 
 
 if(class_exists( 'WPSEO_Primary_Term')) {
 //有効になっている場合はYoastでプライマリカテゴリを表示および設定
 $ wpseo_primary_term = new WPSEO_Primary_Term($ term、$ post_id); 
 $ primary_term = get_term($ wpseo_primary_term- > get_primary_term()); 
 
 if(!is_wp_error($ primary_term)){
 $ return ['primary_category'] = $ primary_term; 
} 
} 
 
 if(empty($ return ['primary_category'])|| $ return_all_categories){
 $ categories_list = get_the_terms($ post_id、$ term); 
 
 if(empty($ return ['primary_category'])&&!empty($ categories_list)){
 $ return ['primary_category'] = $ categories_list [0]; //最初のカテゴリを取得
} 
 if($ return_all_categories){
 $ return ['all_categories'] = array(); 
 
 if(!empty($ categories_list)){[..____。] foreach($ categories_list as&$ category){
 $ return ['all_categories'] [] = $ category-> term_id; 
} 
} 
} 
} 
 
 return $ return; 
} 
0
amilaishere