As funções e a classe necessária para recuperar a categoria principal de um Post no WordPress.
O código completo para retornar a categoria principal de um Post já com uma tratativa para erros.
$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)) { // Default to first category (not Yoast) if an error is returned $category_display = $category[0]->name; $category_link = get_category_link( $category[0]->term_id ); $category_id = $category[0]->term_id; } else { // Yoast $category_display = $term->name; $category_link = get_category_link( $term->term_id ); $category_id = $term->term_id; } var_dump( $category_id );
Entendendo o código
WordPress não possuí a funcionalidade natividade para que você possa definir qual é a categoria principal de um Post.
O máximo que você consegue é retornar a primeira categoria de todas ao qual o Post está relacionado.
A categoria principal é um recurso adicionado pelo plugin Yoast SEO.
Utilizando a classe WPSEO_Primary_Term conseguimos pegar a categoria principal do post.
new WPSEO_Primary_Term( 'category', get_the_id() );
3 comentários sobre “Recuperar a categoria principal de um Post – WordPress”