Below is my code which loads a custom post type (show), for some reason whatever I change within the $args
nothing changes with the order.
I would like to display shows in date order.
The custom field test_date
is in the format of 20140907
Anyone able to shed some light?
<?php
$args = array(
'post_type' => 'show',
'meta_key' => 'test_Date',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'posts_per_page' => '-1'
);
query_posts($args);
if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php
$limit = 140;
$display_from_date = get_post_meta( get_the_ID(), 'display_from_date', true );
$display_to_date = get_post_meta( get_the_ID(), 'display_to_date', true );
$book_online_link = get_post_meta( get_the_ID(), 'book_online_link', true );
$show_description = get_post_meta( get_the_ID(), 'show_description', true );
$date_formatted = get_post_meta( get_the_ID(), 'date_formatted', true );
$show_content = get_the_content();
$read_more = get_the_permalink();
?>
<div class="showbox">
<div class="showthumb">
<?php the_post_thumbnail('medium'); ?>
</div>
<div class="showdetails">
<div class="showtitle"><?php the_title();?></div>
<div class="showdate">
<strong><?php echo $date_formatted; ?></strong>
</div>
<div class="clear"></div>
<div class="showdescription">
<br />
<?php
if (empty($show_description)){
echo '<em>No description available</em>';
} else {
if (strlen($show_description) > $limit)
$show_description = substr($show_description, 0, strrpos(substr($show_description, 0, $limit), ' ')) . '... <a href="'. $read_more .'" style="font-size:10px; font-style: italic;">Read More</small>';
echo $show_description;
}
?>
</div>
<div class="clear"></div>
<div class="showbuttons">
<a href="<?php the_permalink(); ?>" class="moreinformation">More Information <IMG class='small_arrow_1_right' src='<?php bloginfo('template_url');?>/images/small_arrow_1_right.gif' alt='Next'> </a>
</div>
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
<?php endwhile; endif; wp_reset_query(); ?>
Its ok, I have managed to do it another way with SQL and that is working perfect!
For reference:
<?php
$querydetails = "
SELECT wposts.*
FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta
WHERE wposts.ID = wpostmeta.post_id
AND wpostmeta.meta_key = 'test_date'
AND wposts.post_status = 'publish'
AND wposts.post_type = 'show'
ORDER BY wpostmeta.meta_value ASC
";
$pageposts = $wpdb->get_results($querydetails, OBJECT)
?>
<?php if ($pageposts):
foreach ($pageposts as $post):
setup_postdata($post);
$limit = 140;
$display_from_date = get_post_meta( get_the_ID(), 'display_from_date', true );
$display_to_date = get_post_meta( get_the_ID(), 'display_to_date', true );
$book_online_link = get_post_meta( get_the_ID(), 'book_online_link', true );
$show_description = get_post_meta( get_the_ID(), 'show_description', true );
$date_formatted = get_post_meta( get_the_ID(), 'date_formatted', true );
$show_content = get_the_content();
$read_more = get_the_permalink();
?>
<div class="showbox">
<div class="showthumb">
<?php the_post_thumbnail('medium'); ?>
</div>
<div class="showdetails">
<div class="showtitle"><?php the_title();?></div>
<div class="showdate">
<strong><?php echo $date_formatted; ?></strong>
</div>
<div class="clear"></div>
<div class="showdescription">
<br />
<?php
if (empty($show_description)){
echo '<em>No description available</em>';
} else {
if (strlen($show_description) > $limit)
$show_description = substr($show_description, 0, strrpos(substr($show_description, 0, $limit), ' ')) . '... <a href="'. $read_more .'" style="font-size:10px; font-style: italic;">Read More</small>';
echo $show_description;
}
?>
</div>
<div class="clear"></div>
<div class="showbuttons">
<a href="<?php the_permalink(); ?>" class="moreinformation">More Information <IMG class='small_arrow_1_right' src='<?php bloginfo('template_url');?>/images/small_arrow_1_right.gif' alt='Next'> </a>
</div>
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
<?php endforeach;
endif; ?>