Suporte » Desenvolvendo com WordPress » Chamar nome da categoria em um post (custom post type)

  • Resolvido wesley1992

    (@wesley1992)


    Olá estou criando um tema que tem algumas custom post type entre elas tenho a custom representantes dentro dessa representantes existem as categorias delas, gostaria de consegui puxar o nome da categoria em cada post. Fiz uma função aqui só que está me retornando o nome da categoria com link, realmente sou novo com programação e não estou sabendo resolver essa situação, gostaria da ajuda de vocês, segue meu condigo

    functions:
    <?php
    add_action(‘init’, ‘type_post_representantes’);

    function type_post_representantes() {
    $labels = array(
    ‘name’ => _x(‘Representantes’, ‘post type general name’),
    ‘singular_name’ => _x(‘Representantes’, ‘post type singular name’),
    ‘add_new’ => _x(‘Adicionar Novo’, ‘Novo item’),
    ‘add_new_item’ => __(‘Novo Item’),
    ‘edit_item’ => __(‘Editar Item’),
    ‘new_item’ => __(‘Novo Item’),
    ‘view_item’ => __(‘Ver Item’),
    ‘search_items’ => __(‘Procurar Itens’),
    ‘not_found’ => __(‘Nenhum registro encontrado’),
    ‘not_found_in_trash’ => __(‘Nenhum registro encontrado na lixeira’),
    ‘parent_item_colon’ => ”,
    ‘menu_name’ => ‘Representantes’
    );

    $args = array(
    ‘labels’ => $labels,
    ‘public’ => true,
    ‘public_queryable’ => true,
    ‘show_ui’ => true,
    ‘query_var’ => true,
    ‘rewrite’ => true,
    ‘capability_type’ => ‘post’,
    ‘has_archive’ => true,
    ‘hierarchical’ => false,
    ‘menu_position’ => null,
    ‘supports’ => array(‘title’,’editor’,’thumbnail’,’comments’, ‘excerpt’, ‘custom-fields’, ‘revisions’, ‘trackbacks’)
    );

    register_post_type( ‘representantes’ , $args );
    flush_rewrite_rules();
    }
    ?>
    <?php
    register_taxonomy(
    “categorias”,
    “representantes”,
    array(
    “label” => “Categorias”,
    “singular_label” => “Categorias”,
    “rewrite” => true,
    “hierarchical” => true,

    )
    );
    ?>

    criei essa taxonomia que é categorias que dentro delas estaram todas as categorias existentes para post

    chamada do codigo:

    <?php
    $newsArgs = array( ‘post_type’ => ‘representantes’, ‘posts_per_page’ => 30, );

    $newsLoop = new WP_Query( $newsArgs );

    while ( $newsLoop->have_posts() ) : $newsLoop->the_post(); ?>
    <div class=”representantes”><!—blocos—>
    <?php the_taxonomies(array(‘template’ => ‘% %l’)); ?>
    <?php the_content(); ?>
    </div><!–FINAL BLOCO–>
    <?php endwhile; ?>

    aqui no codigo tudo certo só que quando chamando o nome da categoria com o link e gostaria que só viesse o nome dela sem link não sei o que realmente estou fazendo de errado

Visualizando 3 respostas - 1 até 3 (de um total de 3)
  • Quando você trabalha com categorias você tem que ter em mente que um post sempre pode ter mais de uma categoria, então você sempre vai trabalhar com os valores em um array e vai precisar rodar um loop pra “printar” todas elas (mesmo que seja só uma).

    <?php while ( $newsLoop->have_posts() ) : $newsLoop->the_post(); ?>
    
      <div class=”representantes”> <!-- blocos -->
        <?php
    
          // Pega o array com os nomes (termos) das cateogrias do respectivo representante.
          $repCat = get_the_terms($post->ID, 'categorias');
    
          // Confere primeiro se o post tem alguma categoria
          if($repCat){
    
            // Se tiver mais de uma categoria eu quero colocar uma vírgula entre elas, então uso esse index pra fazer isso.
            $index = 1;
    
            // vamos colocar as categorias dentro de um <p>
            echo '<p class="categorias">';
            // Loop para printar as categorias desse post
            foreach ($repCat as $cat) {
              if($index > 1) echo ', ';
              echo $cat->name;
              $index++;
            }
            echo '</p>';
          }
        ?>
    
        <?php the_content(); ?>
    
      </div><!-- FINAL BLOO  -->
    
    <?php endwhile; ?>
    • Esta resposta foi modificada 2 anos, 8 meses atrás por S. Padilha.

    Obrigado funcionou certinho… também fiz uma aqui que deu certo também
    <?php
    $terms_as_text = get_the_term_list( $post->ID, ‘categorias’, ”, ‘, ‘, ” ) ;
    echo strip_tags($terms_as_text);
    ?>
    dei uma lida no codex e achei essa solução também…
    Obrigado novamente pela ajuda

    tem alguma forma de inserir o slug da categoria ao invez do nome da categoria?

Visualizando 3 respostas - 1 até 3 (de um total de 3)
  • O tópico ‘Chamar nome da categoria em um post (custom post type)’ está fechado para novas respostas.