Drei Leute haben bereits versucht, das zu lösen, und wir kommen gleich auf Null. Ich möchte nur Posts anzeigen, die einen Wert im meta_key 'featured_image' haben.
Also ... wenn 'featured_image' nicht leer ist, zeige den Beitrag. Hier ist der 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>
Wir haben buchstäblich jede denkbare Kombination ausprobiert, die veralteten meta_ * -Optionen, query_posts, get_posts anstelle von WP_Query ... Nichts. Die Select-Anweisung wurde gedruckt, es wird kein Meta-Wert-Feld angezeigt. Es existiert - für die Beiträge (für jeden Beitrag) und es existiert in der Datenbank.
Wir haben jeden Beitrag zu diesem Thema gesehen, einschließlich dieser:
query_posts und zeige nur Ergebnisse, wenn ein benutzerdefiniertes Feld nicht leer ist
http://scribu.net/wordpress/advanced-metadata-queries.html
Zilch. Bitte helfen Sie ...
Antworten:
Hallo @Rob:
Der Grund, warum Sie nicht herausfinden können, wie es geht, ist, dass es nicht möglich ist, zumindest nicht ohne Rückgriff auf SQL. Fügen Sie der
functions.php
Datei Ihres Themas Folgendes hinzu :Wenn Sie benutzerdefinierte
'featured_image'
Felder mit leeren Werten haben, werden diese durch die obigen Angaben herausgefiltert. Wenn Ihr Problem etwas anderes ist, müssen wir sehen, wie Ihre Daten aussehen, um es zu lösen.Eine Sache, auf die ich neugierig bin; Wie sind Sie zu leeren Werten gekommen
'featured_image'
? Die Admin-Benutzeroberfläche in WordPress 3.1 versucht, Sie daran zu hindern, leere Werte einzugeben. Hoffe das hilft.quelle
featured_image
benutzerdefinierten Feld und Ihre Abfrage funktioniert einwandfrei. Was findest du? Besteht die Möglichkeit, dass Ihre Abfrage Posts lädt, die einfeatured_image
benutzerdefiniertes Feld haben, deren Wert jedoch leer ist?Dies scheint zu funktionieren, um den Wert in die Abfrage zu übernehmen. Sie sind sich jedoch nicht sicher, ob er gültige Ergebnisse liefert.
Ich hatte keine Zeit, Felder zu erstellen, um die Ergebnisse zu testen, aber ich habe Abfragen beobachtet, mit denen ich heute gearbeitet habe, und festgestellt
NOT IN
, dass ein leeres Array glücklich ist.quelle
'compare' => 'NOT LIKE'
statt'NOT IN
''value' => '', 'compare' => '!='
'value' => array('', array(), serialize(array())), 'compare' => 'NOT IN'
Dies ist eine alte Frage, aber es scheint, dass Wordpress diese "fehlende Funktion" behoben hat: Laut Wordpress Codex ist es jetzt möglich, die Existenz (oder Nichtexistenz) des Metaschlüssels auf diese Weise zu überprüfen
Dies ist verfügbar ab WP> = 3.5.
quelle
EXISTS
zeigt leere Werte an, nach denen wir hier nicht suchen. Die beste Lösung ist'value' => '', 'compare' => '!='
meines Erachtens.Dies ist die Abfrage, die für mich gearbeitet hat. Sehr ähnlich wie der Vergleich in der t31os-Antwort von 2011, aber da der Metaschlüssel / -wert nur eine einfache Textzeichenfolge ist, muss es sich nicht um ein meta_query-Array handeln.
Aus irgendeinem Grund hat die Verwendung von 'meta_value' => '' und 'meta_compare' => '! =' Oder 'meta_compare' => 'NOT LIKE' immer noch alle Posts für mich abgerufen , aber es hat wahrscheinlich etwas damit zu tun Ich habe meinen Metawert mit dem ACF-Plugin (Advanced Custom Fields) erstellt.
Weitere Informationen zu benutzerdefinierten Feldparametern finden Sie im Codex .
quelle
Dies ist in WP 3.2-alpha behoben:
http://core.trac.wordpress.org/ticket/15292
quelle
Vermisse ich etwas?
Tut das nicht?
quelle
$query = new WP_Query( 'meta_key=featured_image' );
siehe hier: codex.wordpress.org/Class_Reference/…Einzeiler ftw.
quelle