Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

WordPress WordPress Theme Development Custom Post Type Templates in WordPress The Portfolio Homepage

page-portfolio.php is not working properly.. and Portfolio is not showing up

The portfolio is not showing the images and permalinks properly. The permalink is supposed to be "/portfolio/pink-triangle/" but it's "/2016/10/16/portfolio/" here. Also, no image is showing up....

Seems like the WP_Query is not working? or "post_type => "portfolio" "is not right?

Can someone please help me and explain if I'm doing something wrong here?

<?php /* Template Name: Portfolio Page */ ?>

<?php get_header(); ?>

<section class="row">
  <div class="small-12 columns text-center">
    <div class="leader">

        <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
          <h1><?php the_title(); ?></h1>
          <?php the_content(); ?>

        <?php endwhile; endif; ?>      
    </div>
  </div>
</section>

<?php

$args = array(
    'post-type' => 'portfolio'
);
$query = new WP_Query( $args );

?>

<section class="row no-max pad">

<?php if( $query->have_posts() ) : while( $query->have_posts() ) : $query->the_post(); ?>
  <div class="small-6 medium-4 large-3 columns grid-item">
    <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail('large'); ?></a>
  </div>

<?php endwhile; endif; wp_reset_postdata(); ?>

</section>

<?php get_footer(); ?>

3 Answers

Mark Berning
Mark Berning
11,326 Points

change:

post-type

to:

post_type

Omg! a small mistake I couldn't find.

It works now. Thank you so much!!!

Andres Ramirez
Andres Ramirez
18,094 Points

I had a similar problem... but forgot the $ before the query on ->the_post();

Problem solved, thanks!

By the way, mine works fine with post-type!