Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

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,093 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!