Tiga orang sudah mencoba untuk menyelesaikan ini, dan kami akan segera tiba. Saya hanya ingin menampilkan posting yang memiliki nilai di meta_key 'Featured_image'.
Jadi ... jika 'Featured_image' tidak kosong, tampilkan kiriman. Ini kodenya:
<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>
Kami telah mencoba secara harfiah setiap kombinasi yang dapat kami pikirkan, opsi meta_ * yang sudah usang, query_posts, get_posts, alih-alih WP_Query ... Tidak ada. Mencetak pernyataan pilih, tidak ada bidang nilai meta yang ditampilkan. Itu ada - untuk posting (untuk setiap posting) dan ada di db.
Kami telah melihat setiap pos di sana tentang topik saat ini, termasuk yang berikut:
query_posts dan hanya menampilkan hasil jika bidang khusus tidak kosong
http://scribu.net/wordpress/advanced-metadata-queries.html
Zilch. Tolong bantu...
Jawaban:
Hai @Rob:
Alasan Anda tidak dapat menemukan cara melakukannya adalah karena itu tidak mungkin, setidaknya tidak tanpa menggunakan SQL. Coba tambahkan berikut ini ke
functions.php
file tema Anda :Jika Anda memiliki
'featured_image'
bidang khusus dengan nilai kosong di atas akan menyaringnya. Jika masalah Anda adalah hal lain, kami harus melihat seperti apa data Anda untuk menyelesaikannya.Satu hal yang saya ingin tahu tentang; bagaimana Anda mendapatkan nilai kosong
'featured_image'
? Admin UI di WordPress 3.1 melakukan yang terbaik untuk mencegah Anda memasukkan nilai kosong. Semoga ini membantu.sumber
featured_image
bidang khusus dan permintaan Anda berfungsi dengan baik. Apa yang kamu temukan Apakah ada kemungkinan kueri Anda memuat posting yang memilikifeatured_image
bidang khusus tetapi di mana nilai untuk bidang itu kosong?Ini tampaknya berhasil untuk mendapatkan nilai ke dalam kueri, tidak yakin apakah itu menarik hasil yang valid.
Tidak punya waktu untuk membuat bidang untuk menguji hasilnya, tetapi saya telah menonton kueri yang telah saya kerjakan hari ini dan memperhatikan
NOT IN
akan dengan senang hati mengambil array kosong.sumber
'compare' => 'NOT LIKE'
alih - alih'NOT IN
''value' => '', 'compare' => '!='
'value' => array('', array(), serialize(array())), 'compare' => 'NOT IN'
Ini adalah pertanyaan lama, tetapi sepertinya Wordpress telah memperbaiki "fitur yang hilang" ini: sekarang, menurut Wordpress Codex dimungkinkan untuk memeriksa keberadaan (atau tidak adanya) kunci meta, seperti ini
Ini tersedia pada WP> = 3.5.
sumber
EXISTS
akan menampilkan nilai kosong yang bukan yang kita kejar di sini. Solusi terbaik adalah'value' => '', 'compare' => '!='
sejauh pengujian saya.Ini adalah permintaan yang berfungsi untuk saya. Sangat mirip dengan perbandingan pada jawaban t31os dari 2011, tetapi karena kunci / nilai meta hanyalah textstring yang sederhana, itu tidak perlu berupa array meta_query.
Untuk alasan apa pun, menggunakan 'meta_value' => '' dan 'meta_compare' => '! =' Atau 'meta_compare' => 'TIDAK SUKA' masih menarik semua posting untuk saya, tetapi mungkin ada hubungannya dengan fakta bahwa Saya membuat nilai meta saya menggunakan plugin Advanced Custom Fields (ACF).
Baca lebih lanjut tentang parameter bidang khusus dalam kodeks .
sumber
Ini diperbaiki di WP 3.2-alpha:
http://core.trac.wordpress.org/ticket/15292
sumber
Apakah saya melewatkan sesuatu?
Tidak akan melakukannya?
sumber
$query = new WP_Query( 'meta_key=featured_image' );
lihat di sini: codex.wordpress.org/Class_Reference/…satu liner ftw.
sumber