web-dev-qa-db-fra.com

Si la méta clé existe dans la fonction get posts, sinon créez-la

Le code suivant va chercher les messages avec les numéros de téléphone à domicile de la clé méta.

$metas = ''; 
    $args = array(
    'numberposts' => 1,
    'post_type' => 'electors',
    'orderby' => 'post_date',
    'order' => 'ASC',
    'meta_query' => array(
        array(
            'key' => 'wpcf-home_telephone_number',
            'value' => '0',
            'compare' => '>'
        )
     ) 
    );


$canvassing = get_posts( $args );

Je veux ajouter une autre méta à rechercher. Le problème est que cette méta peut ne pas exister sur tous les posts. Je souhaite obtenir des publications qui n'ont pas de clé Méta ou qui n'ont pas de valeur.

array(
            'key' => 'wpcf-success',

            'value' => ''
        )

Ce code obtiendra uniquement les publications qui ont la clé sans valeur. Je veux aussi des articles qui n'ont pas du tout cette clé.

Je suis fatigué de cette add_post_meta($post->ID, 'wpcf-success', '', true); mais comme nous n’avons pas récupéré les messages, il n’ya pas encore d’ID.

1
Robin Knight

Cette fonctionnalité "n'existe pas" n'est pas possible avec une méta-requête classique. On y travaille, mais il semble que sa prochaine version ait été brassée ( (voir ce ticket de trace pour plus d'informations).

En attendant, vous devez exécuter une instruction SQL personnalisée à l’aide de $ wpdb , comme dans la réponse de DeadMedic que Milo a lié dans les commentaires.

1
MathSmath