Orderpress'i Wordpress 3.1'de meta_query ile nasıl kullanıyorsunuz?


21

Özel yazılar listemi meta_query ile filtrelemeden sonra istediğim meta verilere göre sipariş etmek mümkün mü?

Örneğin, web seminerleri adında özel bir gönderi türüm var. Yaklaşan tüm web seminerlerini listelemeye çalışıyorum ve webinar_startDate adlı özel meta alanı tarafından sipariş edilmelerini sağlıyorum.

Aşağıdaki sorguyu kullanarak, eski web seminerleri dışında başarılı bir şekilde web seminerlerini geri gönderebildim. Ancak, hala webinar_startDate tarafından değil, yayınlandıkları sırayla ortaya çıkıyorlar.

<?php $my_array =  array(
    'meta_query' => array(
            array(
                'key' => 'webinar_startDate',
                'value' => date("Y-m-d H:i:s"),
                'compare' => '>=',
                'type' => 'DATETIME'
            )
    ),
    'orderby' => 'meta_value',
    'post_type' => 'webinars',
    'posts_per_page' => 20,
    'order' => 'ASC'
); ?>

3.0'dan 3.1'e yapılan değişiklik nedeniyle, orderby => meta_value kullanımının muhtemelen farklı olduğunu, ancak bunu açıklamak için WordPress belgelerinde bir cevap bulamadığımdan şüpheleniyorum.

Biri yardım edebilir mi? Şimdiden teşekkürler.

Yanıtlar:


17

Yeni meta_querydizi, sorgunun hangi mesajları göndereceğini seçer. Yani evet, içindeki 'anahtarı' işaret ediyorsun meta_query, ama yine de eski yöntemini kullanabilirsiniz.

'orderby' => 'meta_value', 
'meta_key' => '_events_meta',

meta_query, ek olarak bu çizgiler nasıl göstermek olarak sıralamak çıkan sorguyu. Yani evet, aynı meta_key'i iki kere belirtebilirsin.


9
Bu cevap tamamen doğru değil. Mevcut bir meta_query'nin dışına bir sipariş ve bir meta_key eklerseniz, sonuç gerçekten verilen anahtarla sıralanır - ancak değer ölçütlere uymasa bile, bu meta anahtarının ayarlandığı herhangi bir yayını da içerecektir. meta_query'de (en azından testte benim için çalıştığı gibi). Bunu yapmanın daha iyi bir yolu, bir diziyi burada açıklandığı gibi siparişte
MathSmath

1

Özel Mesajlarım için aşağıdaki kodu kullanıyorum, eventstüm mesajları Döngüde almak için.

$evtLoop = new WP_Query(array('post_type' => 'events',
                              'posts_per_page' => 10,
                              'orderby' => 'meta_value', 
                              'meta_key' => '_events_meta',
                              'order'=>'DESC'));

Kodunuzu yaklaşık olarak aynı şekilde kullandığınızı düşünüyorum. meta_keySıralanacak meta-alanın isminin eksik olduğunu düşünüyorum . Belki eklerseniz yardımcı olur

'meta_key' => 'webinar_startDate',

dış diziye?


Şimdi görüyorum. 'Meta_key' ve 'meta_deri' öğelerinin amortismana uğradığı Wordpress belgeleriyle karıştırıldım. Bunun onları kullanamayacağımı kastettim, ama sanırım bu yanıltıcıydı. Teşekkürler!
Jeff K.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.