query_posts și afișarea rezultatelor doar dacă un câmp personalizat nu este gol

24 feb. 2011, 11:31:40
Vizualizări: 20.3K
Voturi: 3

Cum pot folosi query_posts pentru a afișa doar rezultatele în care un câmp personalizat nu este gol sau are o valoare.

Vreau să pun un URL într-un câmp personalizat și să afișez doar paginile care au acest URL completat?

Codul actual, dar nu reușesc să îmi dau seama de rest:

$args = array( 'posts_per_page' => '10', 
    'post_type' => 'programmes', 
    'orderby' => 'meta_value_num', 'meta_key' => 'popularityfig',
    'order'  => 'DESC',
    );
0
Toate răspunsurile la întrebare 3
3

Încearcă acest cod:

$args = array(
'posts_per_page' => '10',
'post_type' => 'programmes',
'meta_key' => 'popularityfig',
'meta_value' => '',
'meta_compare' => '!=',
'order' => 'DESC'
);

Există 2 argumente pe care ai putea să le observi în cod: meta_value și meta_compare. Folosind meta_compare cu operatorul != vor fi excluse postările cu valoare meta goală.

24 feb. 2011 11:53:51
Comentarii

Mulțumesc, acum văd asta în codex. Nu sunt sigur de ce nu am putut să văd înainte! Mulțumesc din nou.

erichmond erichmond
24 feb. 2011 12:08:56

Din anumite motive, aceasta continua să afișeze toate articolele mele indiferent de valoare. În schimb, am folosit 'meta_value' => array('') și 'meta_compare' => 'NOT IN' și a funcționat. Am creat valoarea meta cu pluginul Advanced Custom Fields (ACF) și a fost doar un câmp de text.

AuRise AuRise
10 ian. 2018 15:33:45

@Tessa A funcționat pentru mine. Mulțumesc!

sk03 sk03
25 oct. 2021 22:35:14
0

Nu este clar dacă răspunsul de mai sus a funcționat pentru tine @erichmond, dar cu siguranță nu a funcționat pentru mine. Am găsit totuși o soluție. Vezi: Cum pot afișa postări doar dacă meta_value nu este gol

2 mar. 2011 21:50:40
0

Răspunsul acceptat nu a funcționat pentru mine cu un câmp text în Advanced Custom Fields. Continuam să obțin toate articolele odată ce erau salvate după ce câmpul text a fost adăugat la Câmpurile Personalizate. A trebuit să implementez o soluție similară cu alții:

$args = array(  
    'meta_key' => 'your_acf_field',
    'meta_value' => array(''),
    'meta_compare' => 'NOT IN',
);
13 mai 2022 17:09:25