I think I found another way. Seems to be working great.
/****** CUSTOME POST-TYPE ******/
<?php
// CREATE CUSTOME META BOX
function r_create_mb_bids(){
add_meta_box(
'r_bid_visibility_mb',
__( ' Bid Visibility', 'bids' ),
'r_bid_visibility_mb',
'bids',
'normal',
'high'
);
}
add_action( 'add_meta_boxes', 'r_create_mb_bids' );
// DISPLAY IN ADMIN
function r_bid_visibility_mb( $post ){
global $post;
$bid_data = get_post_custom($post->ID);
$visibility = $bid_data['visibility'][0];
?>
<?php $visibility_value = get_post_meta($post->ID, 'visibility', true);
$visibility_checked = 'checked="checked"';
?>
<input type="radio" name="visibility" value="yes" <?php if($visibility_value =='yes'){ echo $visibility_checked; } ?>/> Open
<input type="radio" name="visibility" value="no" <?php if($visibility_value =='no'){ echo $visibility_checked; } ?>/> Secure
<?php
}
// SAVE META DATA
add_action('save_post', 'save_details_visibility');
function save_details_visibility(){
global $post;
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return $post->ID;
}
update_post_meta($post->ID, 'visibility', $_POST['visibility']);
}
?>
/****** PAGE TEMPLATE ******/
<?php
// THE LOOP
$args = array(
'post_type' => 'bids',
'posts_per_page' => -1,
'meta_query' => array(
array ( 'key' => 'visibility', 'value' => 'yes', )
)
);
$query = new WP_Query( $args ); while ( $query->have_posts() ) : $query->the_post();
?>
[ ... ]
<?php endwhile; ?>
?>