Je n'arrive pas à faire en sorte que cela fonctionne. J'essaie de montrer des publications qui ont la valeur meta 'sélectionnée_image' définie sur rien. D'après ce que je peux dire, tout est bien organisé, mais je suis un peu au-dessus de ma tête. Voici ce que j'ai
<ul>
<?php
global $post;
$myposts = get_posts(array(
'showposts' => 5,
'offset' => 7,
'meta_query' => array(
array(
'key' => 'featured_image',
'value' => '',
'compare' => 'NOT LIKE'
)
)
));
foreach($myposts as $post) {
setup_postdata($post);
$meta = get_post_meta($post->ID, '');
?>
<li>
<a href=""><img src="<?php bloginfo('template_directory'); ?>/timthumb.php?src=<?php if (isset($meta['featured_image'][0]) && !empty($meta['featured_image'][0])): echo $meta['featured_image'][0]; else: ?>/wp-content/themes/SSv2011/images/review-default.gif<?php endif; ?>&w=84&h=60" alt="" /></a>
</li>
<?php unset($myposts); ?>
<?php } ?>
</ul>
Mis à jour pour afficher la requête complète. Des idées? : \
Mis à jour vers WP_Query et je reçois des messages qui apparaissent, mais ce ne sont pas UNIQUEMENT des messages qui contiennent quelque chose dans 'Featured_image'. Des idées avec ça? La nouvelle requête:
<?php
$args = array(
'showposts' => 5,
'meta_query' => array(
array(
'key' => 'featured_image',
'value' => '',
'compare' => '!='
)
)
);
$ft_pagination = new WP_Query( $args );
?>
<?php while ($ft_pagination->have_posts()) : $ft_pagination->the_post(); ?>
<?php $ftimage = get_post_meta(get_the_id(), 'featured_image', TRUE); ?>
<li>
<article>
<a href="">
<?php if ($ftimage): ?>
<img src="<?php bloginfo('template_directory'); ?>/timthumb.php?src=<?php echo $ftimage; ?>&w=84&h=60" alt="" />
<?php else: ?>
<img src="<?php bloginfo('template_directory'); ?>/timthumb.php?src=/wp-content/themes/ssv/images/review-default.gif&w=84&h=60" alt="" />
<?php endif; ?>
</a>
</article>
</li>
<?php
endwhile;
wp_reset_query();
?>
Pas possible avec une valeur vide. Voir: Comment puis-je afficher les publications uniquement si meta_value n'est pas vide
Premièrement, votre appel get_post_meta
ne possède pas de clé. Ne devrait pas être get_post_meta( $post->ID, 'featured_image', true )
ou get_post_meta( $post->ID, 'featured_image', false )
si vous souhaitez plusieurs valeurs.
De plus, vous traitez les résultats de l'appel get_post_meta
comme s'il contenait un tableau de valeurs ici $meta['featured_image'][0]
, mais vous n'avez pas spécifié de clé, ce qui signifie qu'il est hautement improbable qu'il contienne quoi que ce soit à ce stade.
Je soupçonne que le problème principal est l’absence de clé dans l’appel get_post_meta
.
De plus, je suggérerais de revenir à l'opérateur !=
, car NOT LIKE
ne conviendrait pas vraiment pour une comparaison de chaîne vide, imaginez à quoi ressemblera ce code SQL.
WHERE meta_value NOT LIKE '%%'
Où en utilisant la comparaison pas égale, nous obtenons ..
WHERE meta_value != ''
..qui est (je crois) exactement ce que nous avons l'intention de vérifier, un champ méta avec une valeur qui est tout sauf une valeur vide.