web-dev-qa-db-fra.com

méta-requête ne montrant aucun résultat?

J'essaie d'afficher le résultat pour un champ personnalisé qui n'est pas vide dans un type d'article personnalisé mais qui ne donne aucun résultat?

                    <?php

                        if (have_posts()) :
                            $args = array(
                                'post_type' => 'programmes',
                                'meta_query' => array(
                                        'key' => 'linktovideocatchup',
                                        'value' => '',
                                        'compare' => 'NOT LIKE'),
                                //'caller_get_posts' => 1,                              
                                );
                        ?>

                        <?php query_posts( $args ); ?>


                        <?php while (have_posts()) : the_post(); ?> `enter code here`
1
erichmond

il manque un tableau dans l'élément meta_query:

$args = array(
           'post_type' => 'programmes',
           'meta_query' => array(
                              array(
                                   'key'     => 'linktovideocatchup',
                                   'value'   => '',
                                   'compare' => 'NOT LIKE'
                                   )
                              )
            );

(Ceci est nécessaire pour permettre l'interrogation de plusieurs champs méta.)

vous avez également eu une virgule superflue après l'élément de tableau meta_query, ce qui peut poser problème.

je pense que vous devriez aussi pouvoir utiliser l'opérateur '<>' plutôt que 'NE PAS AIMER', je crois que c'est plus efficace.

il existe une bonne description de la fonctionnalité meta_query ici: http://scribu.net/wordpress/advanced-metadata-queries.html

7
Simon Blackbourn

Essayez ce code:

$args = array(
       'post_type' => 'programmes',
       'meta_query' => array(
                          array(
                               'key'     => 'linktovideocatchup',
                               'value'   => '',
                               'compare' => '!='
                               )
                          )
        );

Il suffit de changer 'NOT LIKE' par '! ='. Cela a fonctionné pour moi;)

0
user26184

Il y a une meilleure réponse à . Comment puis-je afficher les publications uniquement si meta_value n'est pas vide - Impossible de demander une valeur nulle comme ceci.

0
robalan