我使用了Yoast seo插件并为产品设置了主要类别.但在前面我无法获得主要类别名称.
嗨,你可以使用postmeta表.
$primary_cat_id=get_post_meta($product->id,'_yoast_wpseo_primary_product_cat',true); if($primary_cat_id){ $product_cat = get_term($primary_cat_id, 'product_cat'); if(isset($product_cat->name)) echo $product_cat->name; }
我无法获得公认的工作答案。我修改了它以满足我的需求
$cat_name = ''; // I have this set in some shortcodes if (!isset($cat_name) || $cat_name == '') { if ( class_exists('WPSEO_Primary_Term') ) { // Show the post's 'Primary' category, if this Yoast feature is available, & one is set. category can be replaced with custom terms $wpseo_primary_term = new WPSEO_Primary_Term( 'category', get_the_id() ); $wpseo_primary_term = $wpseo_primary_term->get_primary_term(); $term = get_term( $wpseo_primary_term ); if (is_wp_error($term)) { $categories = get_the_terms(get_the_ID(), 'category'); $cat_name = $categories[0]->name; } else { $cat_name = $term->name; } } else { $categories = get_the_terms(get_the_ID(), 'category'); $cat_name = $categories[0]->name; } }
我已经编辑了一个工作示例以使其更加独立,我将其用于自定义分类法,因此使用了get_the_terms()而不是get_the_category()。该代码尚未在其当前状态下进行过测试。