Trois personnes ont déjà essayé de résoudre ce problème et nous montons nul. Je souhaite afficher uniquement les publications qui ont une valeur dans la méta_key 'Featured_image'.
Alors ... si 'Featured_image' n'est pas vide, affichez le message. Voici le code:
<ul>
<?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();
?>
</ul>
Nous avons littéralement essayé toutes les combinaisons possibles, les options obsolètes meta_ *, query_posts, get_posts, au lieu de WP_Query ... Rien. Imprimé l’instruction select, aucun champ de méta-valeur n’est affiché. Il existe - pour les messages (pour chaque message) et il existe dans la base de données.
Nous avons vu tous les articles sur le sujet actuellement, y compris ceux-ci:
query_posts et n'affiche les résultats que si un champ personnalisé n'est pas vide
http://scribu.net/wordpress/advanced-metadata-queries.html
Rien. S'il vous plaît aider ...
Réponses:
salut @Rob:
Si vous ne savez pas comment faire, c'est parce que c'est impossible, du moins sans recourir à SQL. Essayez d’ajouter ce qui suit au
functions.php
fichier de votre thème :Si vous avez des
'featured_image'
champs personnalisés avec des valeurs vides, ce qui précède va les filtrer. Si votre problème est autre chose, nous devrons voir à quoi ressemblent vos données pour le résoudre.Une chose qui m'intrigue comment avez-vous obtenu des valeurs vides
'featured_image'
? L'interface utilisateur d'administration dans WordPress 3.1 fait de son mieux pour vous empêcher d'entrer des valeurs vides. J'espère que cela t'aides.la source
featured_image
champ personnalisé et votre requête fonctionne bien. Que trouves-tu? Y a-t-il une chance que votre requête charge des publications qui ont unfeatured_image
champ personnalisé mais où la valeur de ce champ est vide?Cela semble fonctionner pour obtenir la valeur dans la requête, mais vous ne savez pas si elle génère des résultats valides.
Pas eu le temps de créer des champs pour tester les résultats, mais je suis en train de regarder les requêtes avec lesquelles j'ai travaillé aujourd'hui et j'ai remarqué que
NOT IN
je prendrais volontiers un tableau vide.la source
'compare' => 'NOT LIKE'
lieu de'NOT IN
''value' => '', 'compare' => '!='
'value' => array('', array(), serialize(array())), 'compare' => 'NOT IN'
C'est une vieille question, mais il semble que Wordpress ait corrigé cette "fonctionnalité manquante": désormais, selon Wordpress Codex, il est possible de vérifier l'existence (ou la non-existence) de la méta-clé, comme ceci
Ceci est disponible à partir de WP> = 3.5.
la source
EXISTS
montrera des valeurs vides qui ne sont pas ce que nous recherchons ici. La meilleure solution est'value' => '', 'compare' => '!='
dans la mesure où mes tests vont.C'est la requête qui a fonctionné pour moi. Très similaire à la comparaison dans la réponse de t31os à partir de 2011, mais comme la méta clé / valeur est juste une simple chaîne de texte, il n'est pas nécessaire que ce soit un tableau meta_query.
Pour une raison quelconque, en utilisant 'meta_value' => '' et 'meta_compare' => '! =' Ou 'meta_compare' => 'NOT LIKE' même tiré tous les messages pour moi, mais cela a probablement quelque chose à voir avec le fait que J'ai créé ma méta-valeur à l'aide du plugin Advanced Custom Fields (ACF).
En savoir plus sur les paramètres de champ personnalisés dans le codex .
la source
Ceci est corrigé dans WP 3.2-alpha:
http://core.trac.wordpress.org/ticket/15292
la source
Est-ce que je manque quelque chose?
Ça ne va pas le faire?
la source
$query = new WP_Query( 'meta_key=featured_image' );
regardez ici: codex.wordpress.org/Class_Reference/…une doublure ftw.
la source