it-swarm.com.de

If-Klauseln in get_posts-Abfrage

Ich verwende das get_posts-Tag, um 4 zufällige Posts von einem benutzerdefinierten Post-Typ zu erhalten. Ich möchte jedoch nur einen Beitrag erhalten, wenn $ pic_url gesetzt ist.

Ich habe versucht mit ...

if(!$pic_url) {continue;}

Aber das funktioniert nicht, da ich manchmal weniger als 4 Posts anzeigen muss (ich möchte immer 4 Posts anzeigen).

$Rand_posts = get_posts(array( 'numberposts' => 4, 'orderby' => 'Rand', 'post_type' => 'ansatte', 'order' => 'ASC' ));
    foreach( $Rand_posts as $post ) : 
        $pic_url = get_post_meta($post->ID, 'employee_pic', true); 
        $name = get_post_meta($post->ID, 'employee_name', true); 
        $title = get_post_meta($post->ID, 'employee_title', true); 
        ?>
        <div class="alignleft employee_outer">
            <div class="employee_container">
            <img src="<?php if($pic_url) { echo $pic_url; } else { echo bloginfo('template_url') . '/images/default_profile_pic.png'; } ?>" />
            </div>
            <p class="employee_name"><?php echo $name; ?></p>
            <small class="employee_title"><?php echo $title; ?></small>
        </div>
    <?php endforeach;
1
user1635

nur Beiträge mit diesem Metaschlüssel abrufen:

$Rand_posts = get_posts(array( 
  'numberposts' => 4, 
  'orderby' => 'Rand', 
  'post_type' => 'ansatte', 
  'order' => 'ASC',
  'meta_key' => 'employee_pic',
 ));

oder verwenden Sie die Meta-Abfrage von WP 3.1:

$Rand_posts = get_posts(array( 
  'numberposts' => 4, 
  'orderby' => 'Rand', 
  'post_type' => 'ansatte', 
  'order' => 'ASC',
  'meta_query' => array(
     array(
      'key'     => 'employee_pic',
      'value'   => '',
      'compare' => 'NOT LIKE'
     ),
   )
 ));
3
onetrickpony