Return to Snippet

Revision: 57982
at June 19, 2012 09:25 by crypticsoft


Initial Code
<?php
	// get portfolio
	$args = array( 'post_type' => 'portfolio', 'posts_per_page' => 100, 'orderby' => 'title', 'order' => 'asc' );
	$loop = new WP_Query( $args );    
	$port = array();
	while ( $loop->have_posts() ) : $loop->the_post();		
			$idx = get_the_ID();
			$year_completed = get_post_meta($idx, 'year_completed', true);
			$website_addr = get_post_meta($idx, 'website_address', true);
			$thumb = get_the_post_thumbnail($idx, 'thumbnail'); //250x200 - featured image
			$title = get_the_title();
			$excerpt = get_the_excerpt();
			$content = get_the_content();
			
			//get 'Solutions' terms
			$terms = get_the_terms($idx, 'Solutions');
			$terms_string = '';

			//build up comma delimited string
			foreach($terms as $t){
				$terms_string .= $t->slug . ' ';
			}
			$port[] = array(
				'id' => $idx,
				'year_completed' => $year_completed,
				'website' => $website_addr,
				'thumb' => $thumb,
				'title' => $title,
				'content' => $content,
				'excerpt' => $excerpt,
				'terms' => $terms,
				'terms_string' =>$terms_string, //classifications (comma delimited slugs)
				'permalink' => get_permalink(),
			);
	endwhile;

	$terms = get_terms('Solutions');	
	
	$filters = '<section id="options" class="clearfix">
			    <ul id="filters" class="option-set floated clearfix">
			    <li><a href="#filter" data-filter="*" class="selected">show all</a></li>';						    

				foreach($terms as $t){		    
			      $filters .= '<li><a href="#filter" data-filter=".' . $t->slug . '">' . $t->name . '</a></li>';// $t->count
				}
			    $filters .= '</ul></section>';
?>  


<!-- add this inside entry-content -->
    <?php echo $filters; ?>					
	<div id="portfolio">
		
		<!-- isotope -->
        <ul class="thumbnails isotope">
        <?php foreach($port as $p){ ?>
            <li class="span3 element <?php echo $p['terms_string']; ?>">
                <div class="thumbnail">
                    <?php echo $p['thumb']; ?>
                    <div class="caption">
                      <h5><a href="<?php echo $p['permalink']; ?>"><?php echo $p['title']; ?></a></h5>
                    </div><!-- end caption -->
                </div><!-- end thumbnail -->
            </li>
		<?	} //end foreach ?>
        </ul>
        
    </div><!-- end #portfolio -->

Initial URL
http://toddwilson.icreativepro.com

Initial Description
Here is a quick example on how to generate your own portfolio with filtering based on a taxonomy (in this case 'Solutions').

Initial Title
WordPress Portfolio Custom Post Type Filtering

Initial Tags
wordpress

Initial Language
PHP