Come posso mostrare i post solo se meta_value non è vuoto
-
-
Quale versione di WordPress stai utilizzando?Which version of WordPress are you using?
- 0
- 2011-03-02
- MikeSchinkel
-
@MikeSchinkel - Scusa Mike,non l'ho visto - È 3.1.@MikeSchinkel - Sorry Mike, didn't see this — It's 3.1.
- 0
- 2011-03-02
- robalan
-
WP 3.5 risolve questoproblemae ti consente di utilizzare unmetodo di confronto diversoWP 3.5 fixes this problem and lets you use a different compare method
- 0
- 2017-12-06
- Erenor Paz
-
7 risposta
- voti
-
- 2011-03-02
Ciao @Rob:"
Ilmotivoper cuinon riesci a capire comefarlo èperchénon èpossibile,almenonon senza ricorrere a SQL.Prova ad aggiungere quanto segue alfile
functions.php
deltuotema:add_filter('posts_where','yoursite_posts_where',10,2); function yoursite_posts_where($where,$query) { global $wpdb; $new_where = " TRIM(IFNULL({$wpdb->postmeta}.meta_value,''))<>'' "; if (empty($where)) $where = $new_where; else $where = "{$where} AND {$new_where}"; return $where; }
Se hai campi
'featured_image'
personalizzati con valori vuoti,quanto sopra lifiltrerà.Seiltuoproblema è qualcos'altro,dovremo vedere come appaionoi tuoi datiper risolverlo.Una cosa chemi incuriosisce;come hai ottenuto valori vuotiper
'featured_image'
?L'interfaccia utente di amministrazionein WordPress 3.1fa del suomeglioperimpedirti diinserire valori vuoti. Spero che questo aiuti.Hi @Rob:
The reason you can't figure out how to do it is because it's not possible, at least not without resorting to SQL. Try adding the following to your theme's
functions.php
file:add_filter('posts_where','yoursite_posts_where',10,2); function yoursite_posts_where($where,$query) { global $wpdb; $new_where = " TRIM(IFNULL({$wpdb->postmeta}.meta_value,''))<>'' "; if (empty($where)) $where = $new_where; else $where = "{$where} AND {$new_where}"; return $where; }
If you have custom
'featured_image'
fields with empty values the above will filter them out. If you problem is something else, we'll have to see what your data looks like to solve it.One thing I'm curious about; how did you get empty values for
'featured_image'
? The admin UI in WordPress 3.1 does its best to keep you from entering empty values. Hope this helps.-
Grazie a Dio ... quindinon siamo solonoi.Buono a sapersi,suppongo.Grazie @MikeSchinkel - Dovrebbero davverometterlonel codice ... In attesa della spiegazione.Grazie!!Thank god... so it's not just us. That's good to know, I suppose. Thank you @MikeSchinkel - They really ought to put that in the codex... Looking forward to the explanation. Thanks!!
- 0
- 2011-03-02
- robalan
-
@ Rob - Quindi stavo andandofuori dallamia conoscenza 3.0e ora lo stotestandoin 3.1e sembrafunzionare.Ho dueposte uno con un campopersonalizzato `Featured_image`e latua queryfunzionabene.Cosa staitrovando?C'è unapossibilità che latua query stia caricandopost che hanno un campopersonalizzato "Featured_image"ma doveil valoreper quel campo è vuoto?@Rob - So I was going off my 3.0 knowledge and now I'm testing it in 3.1 and it does seem to work. I have two posts and one with a `featured_image` custom field and your query works fine. What are you finding? Is there a chance your query is loading posts that do have a `featured_image` custom field but where the value for that field is empty?
- 0
- 2011-03-02
- MikeSchinkel
-
@MikeSchinkel - Non sto scherzando?Sì,èesattamente quello che stafacendo: ognipost hail campo Featured_image,manon sonotuttiimpostati.Comunque sta caricandotuttii post.@MikeSchinkel - No kidding? Yes, that's exactly what it's doing — every post has the featured_image field, they're just not all set. It's loading up all posts anyway.
- 0
- 2011-03-02
- robalan
-
@ Rob - Vedi lamia risposta aggiornata.@Rob - See my updated answer.
- 0
- 2011-03-02
- MikeSchinkel
-
@MikeSchinkel - Grazie!Sembrafunzionareperfettamente,dopo averimpostato ancheilpost_typenella query.I valori vuoti sono utili:nontuttii post hanno questaimmaginein primopiano (e so dellaminiatura delpost,semplicementenon è unabuona opzioneper questo sito).Graziemille!@MikeSchinkel - Thank you! It seems to be working perfectly, after setting the post_type in the query also. The empty values are purposeful — not every post has this featured image (and I know about the post thumbnail, it's just not a good option for this site). Thanks so much!
- 0
- 2011-03-02
- robalan
-
@MikeSchinkel - Sono corretto -funziona sulle query che volevo,ma sta causando 404 ovunque.Pagine di singolipost,archivi ...: o \ Qualcheidea?@MikeSchinkel - I stand corrected - it works on the queries that I wanted it to, but it's causing 404's everywhere else. Single post pages, archives... :o\ Any ideas?
- 0
- 2011-03-02
- robalan
-
Nell'esempio di codicenellatua domanda sopra,prova amettere la chiamata `add_filter ()` appenaprima dellatua chiamata a `WP_Query ()`,quindimetti `remove_filter ('posts_where','yoursite_posts_where');` appenaprima di chiamare `wp_reset_query () ".In the code sample in your question above, try putting the `add_filter()` call just before your `WP_Query()` call, then put `remove_filter('posts_where','yoursite_posts_where');` just before you call `wp_reset_query()`.
- 0
- 2011-03-02
- Dougal Campbell
-
Quel codice controlla TUTTIi campipersonalizzatiper vedere se QUALCUNO diessi è vuoto?Cosa succede se voglio che la query controlli solo un campo specialee veda se è vuoto,indipendentemente dagli altri?That code checks ALL custom fields to see if ANY of them are empty? What if I want the query to only check for one special field and see if that is empty no matter what the other ones are?
- 0
- 2011-05-31
- Jens Törnell
-
- 2011-03-04
Questo sembrafunzionareper ottenereil valorenella query,manon sono sicuro che ottenga risultati validi ..
'meta_query' => array( array( 'key' => 'some_key', 'value' => array(''), 'compare' => 'NOT IN' ) )
Non ho avutoiltempo di creare campipertestarei risultati,ma hoguardato le query con cui ho lavorato oggie honotato che
NOT IN
prenderàfelicemente un array vuoto.This seems to work for getting the value into the query, not sure about whether it pulls valid results though..
'meta_query' => array( array( 'key' => 'some_key', 'value' => array(''), 'compare' => 'NOT IN' ) )
Not had time to create fields to test the results, but i've been watching queries i've worked with today and noticed
NOT IN
will happily take an empty array.-
So che questa è una vecchia risposta,maper coloro cheprovano questo approccio,funziona con `'compare'=> 'NON MI PIACE'`invece di`' NON IN` 'I know this is an old answer, but for those trying this apparoach, it works with `'compare' => 'NOT LIKE'` instead of `'NOT IN`'
- 0
- 2012-07-11
- handsofaten
-
Sicuramentepiùefficiente da usare!=Invece dinonin ononpiace.Uguale a http://wordpress.stackexchange.com/a/10286/32863 (che riguarda lemeta chiavi,ma lo stessoprincipio)Surely more efficient to use != instead of not in or not like. Same as http://wordpress.stackexchange.com/a/10286/32863 (that is about meta keys, but same principle)
- 3
- 2015-09-09
- Adam
-
Soluzione ancorapiùpulita: come hagià affermato Adam.È usare: `` valore '=>' ', 'compare'=> '!=' `Even cleaner solution: like Adam stated already. Is to use: `'value' => '', 'compare' => '!=' `
- 5
- 2018-04-20
- Martijn van Hoof
-
Se devi controllareper assicurarti chenon sia un array vuoto ... `'value'=> array ('',array (),serialize (array ())),'compare'=> 'NON IN'`If you need to check to make sure it's not an empty array... `'value' => array('', array(), serialize(array())), 'compare' => 'NOT IN'`
- 0
- 2018-08-14
- StephanieQ
-
- 2017-12-06
Questa è una vecchia domanda,ma sembra che Wordpress abbia risolto questa "caratteristicamancante": ora,secondo Wordpress Codex èpossibile verificare l'esistenza (o lanonesistenza) dellameta chiave,in questomodo
'meta_query' => array( array( 'key' => 'featured_image', 'compare' => 'EXISTS', //or "NOT EXISTS", for non-existance of this key ) )
Disponibile apartire da WP>=3.5.
This is an old question, but it seems Wordpress has fixed this "missing feature": now, according to Wordpress Codex is possible to check for existence (or non-existence) of the meta key, like this
'meta_query' => array( array( 'key' => 'featured_image', 'compare' => 'EXISTS', //or "NOT EXISTS", for non-existance of this key ) )
This is available as of WP >= 3.5.
-
"EXISTS"mostrerà valori vuoti chenon sono ciò che stiamo cercando qui.La soluzionemigliore è "'value'=> '','compare'=> '!='` Per quanto riguardai mieitest.`EXISTS` will show empty values which is not what we're after here. The best solution is `'value' => '', 'compare' => '!=' ` as far as my testing goes.
- 0
- 2019-08-09
- Ben
-
@ Ben Questo èesattamente quello che haprovato l'OP,ma senza alcun successo,a quantopare.Ho aggiunto lamia soluzioneper assicurarmi che lepersone chepassano cercando unmetodoper recuperarei postin base all'esistenza dimeta_keypossanotrovarlo.Poichéil valore di unmetapuòessere "qualcosa","vuoto" o "nullo" (nel casoin cuiilmetanonesista),probabilmente la soluzionemigliore sarebbefondere le due opzioni con una relazione "AND"@Ben That's exactly what the OP tried, but without any success, it seems. I added my solution to make sure people passing by searching for a method to retrieve posts based on existence of meta_key could find it. Since the value of a meta can be "something", "empty" or "null" (in case the meta doesn't exist), probably the best solution would be to merge the two options with an "AND" relation
- 2
- 2019-08-09
- Erenor Paz
-
- 2018-01-10
Questa è la query che hafunzionatoperme.Molto simile al confrontonella risposta dit31os del 2011,mapoiché lameta chiave/valore è solo una semplice stringa ditesto,non ènecessario che sia un arraymeta_query.
$args = array( 'posts_per_page' => 5,//replaced 'showposts' in version 2.1 'meta_key' => 'featured_image', 'meta_value' => array(''), 'meta_compare' => 'NOT IN' );
Per qualsiasimotivo,utilizzando 'meta_value'=> '' e 'meta_compare'=> '!=' o 'meta_compare'=> 'NOTMI PIACE " ha ancoraestrattotuttii postperme,maprobabilmente ha qualcosa a chefare conilfatto che ho creatoilmiometa valore utilizzandoilplug-in Advanced Custom Fields (ACF).
Ulterioriinformazioni suiparametri dei campipersonalizzatinel codice .
This is the query that worked for me. Very similar to the comparison in t31os's answer from 2011, but because the meta key/value is just a simple textstring, it doesn't need to be a meta_query array.
$args = array( 'posts_per_page' => 5,//replaced 'showposts' in version 2.1 'meta_key' => 'featured_image', 'meta_value' => array(''), 'meta_compare' => 'NOT IN' );
For whatever reason, using 'meta_value' => '' and 'meta_compare' => '!=' or 'meta_compare' => 'NOT LIKE' still pulled all posts for me, but it probably has something to do with the fact that I created my meta value using the Advanced Custom Fields (ACF) plugin.
-
- 2011-03-03
Questoproblema è stato risoltoin WP 3.2-alpha:
This is fixed in WP 3.2-alpha:
-
- 2014-01-24
Mimanca qualcosa?
<?php $args = array( 'post_type' => 'post', 'posts_per_page' => -1, 'meta_key' => "featured_image" ); $the_query = new WP_Query( $args ); ?>
Non è così?
Am i missing something?
<?php $args = array( 'post_type' => 'post', 'posts_per_page' => -1, 'meta_key' => "featured_image" ); $the_query = new WP_Query( $args ); ?>
Won't that do it?
-
Modifica: dal codice: `` `$ query=new WP_Query ('meta_key=Featured_image');` `guarda qui: http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_ParametersEdit: from the codex: ```$query = new WP_Query( 'meta_key=featured_image' );``` look here:http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters
- 0
- 2014-01-24
- Infinity Media
-
Innanzitutto,puoi sempre [modificare] una domanda o una rispostainvece di aggiungere un commento.Secondo:non ** abusare ** delle risposteinvece dei commenti.First, you can always [edit] a question or answer instead of adding a comment. Second: Don't **misuse** answers instead of comments.
- 0
- 2014-01-25
- kaiser
-
Se hai unanuova domanda,chiedilafacendo clic sulpulsante [Fai domanda] (http://wordpress.stackexchange.com/questions/ask).Includere un collegamento a questa domanda se aiuta afornireil contesto.If you have a new question, please ask it by clicking the [Ask Question](http://wordpress.stackexchange.com/questions/ask) button. Include a link to this question if it helps provide context.
- 0
- 2014-01-25
- kaiser
-
@kaiser -mi sembra che stesse rispondendo.Non sta chiedendo seil suo codice è valido,ma suppongo che rispondain modo sarcastico alla domanda con ciò che credefunzionerà.@kaiser - seems to me like he was answering. He's not asking if his code is valid, but I suppose sort of sarcastically answering the question with what he believes will work.
- 0
- 2016-09-05
- Nathan
-
@ Nathan Questo è ciò a cui servonoi commenti.@Nathan This is what comments are for.
- 0
- 2016-09-05
- kaiser
-
@kaiser,i commenti servonoperpubblicare rispostee codice?Come siinserisceil codicein un commento?@kaiser, Comments are for posting answers and code? How do you post code in a comment?
- 0
- 2016-09-05
- Nathan
-
@ Nathanmi riferivo allaparte sarcastica della risposta.Il codice dovrebbeessere una risposta,inclusa una spiegazione.@Nathan I was referring to the sarcastic part of the answer. The code should be an answer – including some explanation.
- 0
- 2016-09-05
- kaiser
-
C'era unbugin WordPressma ora è stato risolto.Questo èilmodo correttoperfarlo.There was a bug in WordPress but now it's fixed. This is the correct way to do it.
- 0
- 2016-12-04
- Ryan Taylor
-
Trepersone hannogiàprovato a risolvereilproblemae non ci siamo. Vogliomostrare soloi post che hanno un valorenellameta_key 'Featured_image'.
Quindi ... se "immagine_inprimopiano"non è vuoto,mostrailpost. Eccoil codice:
Abbiamoprovato letteralmente ogni combinazione a cuipossiamopensare,le deprecate opzionimeta_ *,query_posts,get_posts,invece di WP_Query ... Niente. Stampato l'istruzione select,non viene visualizzato alcun campo dimeta valore Esiste -peri post (per ognipost)edesistenel db.
Almomento abbiamo vistotuttii post sull'argomento,inclusi questi:
query_postse mostrai risultati solo se un campopersonalizzatonon è vuoto
http://scribu.net/wordpress/advanced-metadata-queries.html
Zilch. Perfavore aiutatemi ...