Categoria como classe para o tipo de postagem personalizada

4

Acabei de perceber que os tipos de postagem personalizada não aparecem para exibir a categoria como uma classe no loop, via post_class , e será que alguém pode sugerir um trabalho por aí. Isso é algo que deve ser declarado quando estabeleço meu tipo de postagem ou é uma extensão de post_class ?

Por exemplo, em uma postagem do tipo post , a classe exibe algo como: class="post-50434 post type-post status-publish format-standard hentry category-my-lovely-category tag-some-ace-tag" , mas para o meu tipo de postagem personalizada, a categoria não aparece.

- EDITAR

Aqui está um pouco do meu código que pode ajudar a esclarecer o que estou tentando fazer - em primeiro lugar, não estou realmente tentando colocar a classe no corpo, mas no artigo no meu loop:

<?php $cat = get_the_category();
$parentCatName = get_cat_name($cat[0]->parent); ?>

<article id="post-<?php the_ID(); ?>" <?php post_class(); ?> data-category="<?php echo $parentCatName; ?>" data-title="<?php the_title(); ?>">
[...]
</article>

O problema que estou tendo é recuperar as informações da categoria de tipo de postagem personalizada da mesma forma que posso para o tipo de postagem padrão.

- EDITAR

Desculpe, talvez um pouco do que eu estou tentando alcançar ajude - vou tentar resumir:

  • Estou usando o layout de alvenaria do isótopo

  • Desejo filtrar os resultados por um atributo 'categoria de dados' adicionado a cada postagem durante o loop

  • Minhas categorias para vários tipos de postagem (postagem, produto, curso) são agrupadas em categorias pai comuns

  • No meu loop, eu quero preencher esse campo 'data-category' com a categoria pai

Meu problema surge como eu só posso obter a categoria e, por sua vez, a categoria pai, para o tipo de postagem personalizada padrão, usando get_the_category.

Espero que isso esteja fazendo sentido.

    
por Kevin Nugent 04.02.2014 / 19:23

1 resposta

2

Isso é esperado (ou pelo menos: projetado) comportamento.

Aqui está uma parte do Codex sobre isso:

  

As classes post_class CSS são exibidas com base na Tags condicionais após a exibição de página após a publicação

.

     

Categoria
  Os arquivos de modelo de categoria e as exibições de exibições de página exibem os seletores de classe: post-id categoria-ID category-name

Claro, você pode ligar uma função de filtro personalizada ao post_class filtro.

// EDITAR
De acordo com sua pergunta atualizada, aqui está o código atualizado:

<?php
$cat = wp_get_post_terms(get_the_ID(), 'category');
$parentCatName = get_cat_name($cat[0]->parent);
?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?> data-category="<?php echo $parentCatName; ?>" data-title="<?php the_title(); ?>">
[...]
</article>

Se você também quiser adicionar algumas turmas de postagem, faça o seguinte:

post_class('category-'.$parentCatName);
    
por tfrommen 04.02.2014 / 19:35