Trzy osoby próbowały już rozwiązać ten problem, a my zbliżamy się do zera. Chcę pokazywać tylko posty, które mają wartość w meta_key „featured_image”.
Więc ... jeśli 'featured_image' nie jest pusty, pokaż post. Oto kod:
<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>
Wypróbowaliśmy dosłownie każdą kombinację, jaką możemy wymyślić, przestarzałe opcje meta_ *, query_posts, get_posts, zamiast WP_Query ... Nic. Wydrukowano instrukcję select, nie wyświetla się żadne pole wartości meta. Istnieje - dla postów (dla każdego postu) i istnieje w bazie danych.
W tej chwili widzieliśmy każdy post na ten temat, w tym:
query_posts i wyświetlaj wyniki tylko wtedy, gdy niestandardowe pole nie jest puste
http://scribu.net/wordpress/advanced-metadata-queries.html
Zilch. Proszę pomóż...
Odpowiedzi:
Cześć @Rob:
Nie możesz dowiedzieć się, jak to zrobić, ponieważ nie jest to możliwe, przynajmniej nie bez użycia SQL. Spróbuj dodać następujące elementy do
functions.php
pliku motywu :Jeśli masz
'featured_image'
pola niestandardowe z pustymi wartościami, powyższe je odfiltruje. Jeśli Twoim problemem jest coś innego, będziemy musieli zobaczyć, jak wyglądają Twoje dane, aby go rozwiązać.Jedno mnie ciekawi; skąd masz puste wartości
'featured_image'
? Interfejs administratora w WordPress 3.1 robi wszystko, aby nie wprowadzać pustych wartości. Mam nadzieję że to pomoże.źródło
featured_image
niestandardowym polem, a twoje zapytanie działa dobrze. Co znajdujesz Czy istnieje szansa, że zapytanie ładuje posty, które mająfeatured_image
niestandardowe pole, ale gdzie wartość tego pola jest pusta?Wydaje się, że działa to na uzyskanie wartości w zapytaniu, ale nie jestem pewien, czy pobiera prawidłowe wyniki.
Nie miałem czasu na tworzenie pól do testowania wyników, ale obserwowałem zapytania, z którymi pracowałem dzisiaj i zauważyłem,
NOT IN
że z radością wezmę pustą tablicę.źródło
'compare' => 'NOT LIKE'
zamiast'NOT IN
„'value' => '', 'compare' => '!='
'value' => array('', array(), serialize(array())), 'compare' => 'NOT IN'
To stare pytanie, ale wydaje się, że Wordpress naprawił tę „brakującą funkcję”: teraz, zgodnie z Wordpress Codex, możliwe jest sprawdzenie istnienia (lub nieistnienia) meta-klucza, takiego jak ten
Jest dostępny od WP> = 3.5.
źródło
EXISTS
pokaże puste wartości, których tu nie szukamy. Najlepszym rozwiązaniem jest'value' => '', 'compare' => '!='
moje testowanie.To zapytanie działało dla mnie. Bardzo podobny do porównania w odpowiedzi t31os z 2011 roku, ale ponieważ meta klucz / wartość jest tylko prostym ciągiem tekstowym, nie musi to być tablica meta_query.
Z jakiegokolwiek powodu użycie „meta_value” => ” i „ meta_compare '=>'! = ' Lub „meta_compare' =>„ NOT LIKE ” nadal ściągało za mnie wszystkie posty, ale prawdopodobnie ma to coś wspólnego z faktem, że Utworzyłem moją wartość meta przy użyciu wtyczki Advanced Custom Fields (ACF).
Przeczytaj więcej o niestandardowych parametrach pola w kodeksie .
źródło
Zostało to naprawione w WP 3.2-alpha:
http://core.trac.wordpress.org/ticket/15292
źródło
Coś mi brakuje?
Czy to nie zrobi tego?
źródło
$query = new WP_Query( 'meta_key=featured_image' );
spójrz tutaj: codex.wordpress.org/Class_Reference/…jedna wkładka ftw.
źródło