Advanced Custom Fields Taxonomy not showing!

Asked

Viewed 363 times

1

Good evening person, first time participating here. I created a theme in Wordpress but I’m having a problem that is taking my day. I’m not a programmer, but I know how to create themes for wordpress because I understand the logic of PHP. Next: I have the Trucks that displays the products of the category Trucks, and I have the other that displays the products of the category Tractors. As you see the Trucks page displays the Archive-trucks.php file showing the list of products I have registered with the trucks category, whereas the Tractors page does not do the same since I am using the same logic with Archive-tractors.php Could someone help?

add_action('init', 'produtos_registrer');
  function produtos_registrer(){
    $labels = array(
      'name' => _x('Produtos', 'post type general name'),
      'singular_name' => _x('produtos', 'post type singular name'),
      'add_new' => _x('Adicionar Produtos', 'Produtos'),
      'add_new_item' => __('Adicionar Produtos'),
      'edit_item' => __('Editar Produtos'),
      'new_item' => __('Novas Produtos'),
      'view_item' => __('Ver Produtos'),
      'search_items' => __('Procurar Produtos'),
      'not_found' =>  __('Nada encontrado'),
      'not_found_in_trash' => __('Nada encontrado no lixo'),
      'parent_item_colon' => ''
    );
    $args = array(
      'labels' => $labels,
      'public' => true,
      'publicly_queryable' => true,
      'show_ui' => true,
      'query_var' => true,
      'has_archive' => true,
      'menu_icon' => 'dashicons-admin-tools',
      'capability_type' => 'post',
      'hierarchical' => false,
      'supports'    => array( 'title','category','taxonomy','editor','excerpt','thumbnail','gallery'),
      'rewrite' => true,
      'menu_position' => 5
    );
    register_post_type('produtos',$args);
  }

  register_taxonomy(
    "categorias", "produtos",
    array(
      "label" => "Categoria dos produtos",
      "singular_label" => "Categoria do produto",
      "rewrite" => true,
      "hierarchical" => true
    )
  );

Here the Archive-trucks.php:

<div class="lastest">

            <?php
            $args = array('post_type'=>'produtos', 'taxonomy'=>'categorias', 'term'=>'caminhoes', 'numberposts' => -1, 'order' => 'DESC' );
            $projetos = get_posts( $args );
            if( $projetos ):
                ?>

                <?php
                foreach( $projetos as $post ) : setup_postdata( $post );
                ?>

                <div class="col-sm-4">
                    <article class="box-produtos">
                        <div class="row">
                            <div class="col-sm-6">
                                <div class="circle">
                                    <?php
                                    if ( has_post_thumbnail() ) {
                                        the_post_thumbnail();
                                    } ?>
                                </div>
                            </div>
                            <div class="col-sm-6">
                                <header>
                                    <h3><?php the_title(); ?></h3>
                                </header>
                                <p>
                                    <em>Cód.:</em> <?php the_field('codigo_do_produto'); ?>
                                    <br>
                                    <em>Linha:</em> <?php the_field('linha_do_produto'); ?>
                                </p>
                                <footer>
                                    <a href="<?php the_permalink(); ?>" class="btn btn-default" title="">Ver produto</a>
                                </footer>
                            </div>
                        </div>
                    </article>
                </div>


            <?php endforeach; ?>

Aqui o archive-tratores.php:

<div class="lastest">

                <?php
                $args = array('post_type'=>'produtos', 'taxonomy'=>'categorias', 'term'=>'tratores', 'numberposts' => -1, 'order' => 'DESC' );
                $projetos = get_posts( $args );
                if( $projetos ):
                    ?>

                    <?php
                    foreach( $projetos as $post ) : setup_postdata( $post );
                    ?>

                    <div class="col-sm-4">
                        <article class="box-produtos">
                            <div class="row">
                                <div class="col-sm-6">
                                    <div class="circle">
                                        <?php
                                        if ( has_post_thumbnail() ) {
                                            the_post_thumbnail();
                                        } ?>
                                    </div>
                                </div>
                                <div class="col-sm-6">
                                    <header>
                                        <h3><?php the_title(); ?></h3>
                                    </header>
                                    <p>
                                        <em>Cód.:</em> <?php the_field('codigo_do_produto'); ?>
                                        <br>
                                        <em>Linha:</em> <?php the_field('linha_do_produto'); ?>
                                    </p>
                                    <footer>
                                        <a href="<?php the_permalink(); ?>" class="btn btn-default" title="">Ver produto</a>
                                    </footer>
                                </div>
                            </div>
                        </article>
                    </div>


                <?php endforeach; ?>
<div>


Eu criei no plugin advanced custom fields os campos chamando o tipo de post produtos que é o nome lá no functions, creio que algo ta limitando pra mostrar apenas uma taxonomia (categoria), pois quando coloca na url http://cosmosmetalurgica.com.br/produtos/ mostra todos e os que são da categoria Tratores estão genéricos, por isso a single não mostra o botão de voltar pra ver todos os produtos. Sem contar que a página Tratores está chamando a page.php e não o archive-tratores.php que nem o caminhões
Tags
Envie-me novas respostas a minhas publicações por e-mail (configurações)

Here the Archive-tractors.php:

<div class="lastest">

                <?php
                $args = array('post_type'=>'produtos', 'taxonomy'=>'categorias', 'term'=>'tratores', 'numberposts' => -1, 'order' => 'DESC' );
                $projetos = get_posts( $args );
                if( $projetos ):
                    ?>

                    <?php
                    foreach( $projetos as $post ) : setup_postdata( $post );
                    ?>

                    <div class="col-sm-4">
                        <article class="box-produtos">
                            <div class="row">
                                <div class="col-sm-6">
                                    <div class="circle">
                                        <?php
                                        if ( has_post_thumbnail() ) {
                                            the_post_thumbnail();
                                        } ?>
                                    </div>
                                </div>
                                <div class="col-sm-6">
                                    <header>
                                        <h3><?php the_title(); ?></h3>
                                    </header>
                                    <p>
                                        <em>Cód.:</em> <?php the_field('codigo_do_produto'); ?>
                                        <br>
                                        <em>Linha:</em> <?php the_field('linha_do_produto'); ?>
                                    </p>
                                    <footer>
                                        <a href="<?php the_permalink(); ?>" class="btn btn-default" title="">Ver produto</a>
                                    </footer>
                                </div>
                            </div>
                        </article>
                    </div>


                <?php endforeach; ?>
<div>

I created in the plugin Advanced custom Fields the fields calling the type of post products that is the name there in functions, I believe something ta limiting to show only a taxonomy (category)because when you put in the url /products/ shows all and those that are in the category Tractors are generic, so the single does not show the back button to see all products. Not to mention that the Tractors page is calling the page.php and not the Archive-tractors.php that neither the trucks

2 answers

0

The problem is that you gave the wrong names to the files. Save the link from Hierarchy of Templates and consult whenever you need.

In your case you created a taxonomy categorias, associated with type produtos, then I imagine that tratores and caminhões are terms of this taxonomy.

Try renaming archive-tratores.php for taxonomy-categorias-tratores.php and archive-caminhoes.php for taxonomy-categorias-caminhoes.php.

As many templates are similar it is easy to confuse which one is being used. To check which template is being called on each page you can put this snippet on functions.php:

/** 
 * Exibe qual template foi escolhido para exibir a página
 * TODO: retirar esse trecho antes de colocar o site no ar
 */ 
add_filter( 'template_include', function( $template ) {
    error_log( 'template utilizado: '.$template ); // para ver no log do php
    var_dump( 'template utilizado: '.$template ); // para imprimir na tela
    // ex.: template utilizado: '/srv/www/site/htdocs/wp-content/themes/tema/archive.php'
    return $template;
}, 9999 );
  • Thanks Ricardo, I have not much knowledge with this part, I just decided to try, I had never tried before, I did everything via post and categories to register products, projects, cars etc, then when I had blog I broke kkk. I’ll try and get back to you!

  • I managed to resolve the issue in single.php

0

In the part of trucks for example I’m calling by the term, but now it shows separately but shows all products in both categories. And what single do I call? single-tractors.php, single-trucks.php or use another name?

				<?php
				$args = array('post_type'=>'produtos', 'taxonomy'=>'categorias', 'term'=>'tratores', 'numberposts' => -1, 'order' => 'DESC' );
				$projetos = get_posts( $args );
				if( $projetos ):
					?>

Browser other questions tagged

You are not signed in. Login or sign up in order to post.