• Resolvido Dani

    (@difluir)


    Olá!

    Estou com um problema pra visualizar as categorias que criei em um custom post type.

    Criei uma página e um template page para mostrar os posts do custom post type.
    Então criei o arquivo taxonomy.php pra mostrar os posts separados por categorias desse custom post type.

    Só que o arquivo taxonomy.php está mostrando no máximo 3 posts de cada categoria, ele não mostra mais 🙁

    Código do meu custom post type no arquivo functions.php:

    /* ------------ Portfolio / CUSTOM POST TYPE ------------ */
    add_action('init', 'portfolio_register');
    
    function portfolio_register() {
        $labels = array(
            'name' => _x('Portfolio', 'post type general name'),
            'singular_name' => _x('Portfolio Item', 'post type singular name'),
            'add_new' => _x('New item', 'portfolio item'),
            'add_new_item' => __('Add New Item'),
            'edit_item' => __('Edit Item'),
            'new_item' => __('New Item'),
            'view_item' => __('View Item'),
            'search_items' => __('Search Portfolio'),
            'not_found' =>  __('Nothing found'),
            'not_found_in_trash' => __('Nothing found in Trash'),
            'parent_item_colon' => ''
        );
        $args = array(
            'labels' => $labels,
            'public' => true,
            'publicly_queryable' => true,
            'show_ui' => true,
            'query_var' => true,
            'rewrite' => true,
            'capability_type' => 'post',
            'hierarchical' => false,
            'menu_position' => null,
            'supports' => array('title','editor','thumbnail')
          );
        register_post_type( 'portfolio' , $args );
    }
    
    //categorias
    register_taxonomy("Job", array("portfolio"), array(
      "hierarchical" => true,
      "label" => "Job",
      "singular_label" => "Job",
      "rewrite" => array('slug' => 'Job'),
      )
    );
    
    //campos do adicionar/editar posts
    add_action("admin_init", "admin_init");
    
    function admin_init(){
      add_meta_box("skills_job-meta", "Skills", "skills_job", "portfolio", "normal", "low");
      add_meta_box("online_job-meta", "Online", "online_job", "portfolio", "normal", "low");
      add_meta_box("down_job-meta", "Download", "down_job", "portfolio", "normal", "low");
      add_meta_box("buy_job-meta", "Buy", "buy_job", "portfolio", "normal", "low");
    }
    
    function skills_job(){
      global $post;
      $custom = get_post_custom($post->ID);
      $skills_job = $custom["skills_job"][0];
      ?>
      <label>Skills:</label>
      <input name="skills_job" value="<?php echo $skills_job; ?>" size="50" />
      <?php
    }
    
    function online_job(){
      global $post;
      $custom = get_post_custom($post->ID);
      $online_job = $custom["online_job"][0];
      ?>
      <label>Online:</label>
      <input name="online_job" value="<?php echo $online_job; ?>" size="50" />
      <?php
    }
    
    function down_job(){
      global $post;
      $custom = get_post_custom($post->ID);
      $down_job = $custom["down_job"][0];
      ?>
      <label>Downlaod:</label>
      <input name="down_job" value="<?php echo $down_job; ?>" size="50" />
      <?php
    }
    
    function buy_job(){
      global $post;
      $custom = get_post_custom($post->ID);
      $buy_job = $custom["buy_job"][0];
      ?>
      <label>Buy:</label>
      <input name="buy_job" value="<?php echo $buy_job; ?>" size="50" />
      <?php
    }
    
    add_action('save_post', 'save_details');
    function save_details(){
      global $post;
      update_post_meta($post->ID, "skills_job", $_POST["skills_job"]);
      update_post_meta($post->ID, "online_job", $_POST["online_job"]);
      update_post_meta($post->ID, "down_job", $_POST["down_job"]);
      update_post_meta($post->ID, "buy_job", $_POST["buy_job"]);
    }
    
    //mostrar conteudo no admin
    add_action("manage_posts_custom_column",  "portfolio_custom_columns");
    add_filter("manage_edit-portfolio_columns", "portfolio_edit_columns");
    
    function portfolio_edit_columns($columns){
      $columns = array(
        "cb" => "<input type=\"checkbox\" />",
        "title" => "Titulo",
        "description" => "Sobre",
        "theskills" => "Skills",
    	"theonlinejob" => "Online",
        "categoriess" => "Job",
      );
       return $columns;
    }
    function portfolio_custom_columns($column){
      global $post;
      switch ($column) {
        case "description":
          the_excerpt();
          break;
        case "theskills":
          $custom = get_post_custom();
          echo $custom["skills_job"][0];
          break;
    	case "theonlinejob":
          $custom = get_post_custom();
          echo $custom["online_job"][0];
          break;
        case "categoriess":
          echo get_the_term_list($post->ID, 'Job', '', ', ','');
          break;
      }
    }
    /* ------------ END PORTFOLIO / CUSTOM POST TYPE ------------ */

    Esse é o código que estou usando no taxonomy.php:

    <?php get_header(); ?>
    
    <div id="menuPortfolio">
    <ul>
    <li><a href="<?php bloginfo('home');?>/portfolio">Recent</a></li>
    <?php wp_list_categories('taxonomy=Job&title_li=' . __('') . ''); ?>
    </ul>
    <div class="both"></div> </div> <div class="both"></div><!--//menuPortfolio-->
    
    <div id="folioContent">
    
    <?php
    if (have_posts()) :
    while (have_posts()) : the_post();
    $custom = get_post_custom($post->ID);
    $skills_job = $custom["skills_job"][0];
    $online_job = $custom["online_job"][0];
    $down_job = $custom["down_job"][0];
    $buy_job = $custom["buy_job"][0];
    ?>
    <div id="post-<?php the_ID(); ?>" class="job">
      <a href="<?php the_thumb('fullsize'); ?>"><img src="<?php the_thumb('thumbnail'); ?>" alt="" title="" /></a>
      <h2 class="title"><?php the_title(); ?></h2>
      <?php the_content("Continue lendo..."); ?>
      <?php if( !empty($skills_job) ) { ?><p class="skills"><?php echo $skills_job; ?></p><?php } ?>
      <?php if( !empty($online_job) ) { ?><p class="online"><a href="<?php echo $online_job; ?>">Online</a></p><?php } ?>
      <?php if( !empty($down_job) ) { ?><p class="down"><a href="<?php echo $down_job; ?>">Download</a></p><?php } ?>
      <?php if( !empty($buy_job) ) { ?><p class="buy"><a href="<?php echo $buy_job; ?>">Buy</a></p><?php } ?>
    <div class="both"></div>
    </div>
    
    <?php endwhile; endif; ?>
    
    </div><!--//folioContent-->
    
    <?php get_footer(); ?>

    Eu tentei fazer taxonomy-job-blogs.php pra ver se conseguia mudar a quantidade de posts com query_posts mas não deu certo 🙁 e de qualquer forma, prefiro não fazer assim, pois teria que criar um arquivo pra cada categoria. Queria que ele pegasse do taxonomy.php pra todas as categorias criadas e mostrasse vários posts de cada.
    No painel do WordPress ele funciona, se vou em “Portfolio/Job” e clico na quantidade de posts de uma categoria, ele me lista todos os posts dela.

    Se alguém puder me ajudar, agradeço.

Visualizando 2 respostas - 1 até 2 (de um total de 2)
  • @dani, Aparentemente não tem nada errado, o que deve estar limitando a quantidades de posts deve ser a quantiade que está definida no campo “As páginas do blog mostram no máximo” em Configurações > Leitura. Faça um teste.

    Criador do tópico Dani

    (@difluir)

    Não é que é?
    Affe! Uma coisa tão boba e eu aqui quebrando a cabeça.

    Muito obrigada!

Visualizando 2 respostas - 1 até 2 (de um total de 2)
  • O tópico ‘Página de listagem da taxonomia’ está fechado para novas respostas.