Ich versuche eine benutzerdefinierte Abfrage zu machen, um Beiträge (sie sind wirklich Produkte) von WordPress, wo haben keine Meta-Abfrage mit dem Namen 'custom_code'. Ich versuche:auswählen ... wo nicht existiert
SELECT DISTINCT p.ID
FROM
wp_posts p
LEFT JOIN wp_postmeta pm ON p.ID = pm.post_id
WHERE
p.post_type = 'product'
AND (p.post_status = 'publish' OR p.post_status = 'draft')
AND pm.meta_key = 'custom_code' AND pm.meta_key IS NULL
Ich habe versucht, mit NICHT VORHANDEN, aber SQL gibt Fehler:
SELECT DISTINCT p.ID
FROM
wp_posts p
LEFT JOIN wp_postmeta pm ON p.ID = pm.post_id
WHERE
p.post_type = 'product'
AND (p.post_status = 'publish' OR p.post_status = 'draft')
AND NOT EXISTS (
select * from wp_postmeta as pm2
where pm2.meta_key = 'custom_code'
)
HINWEIS: Ich muss solche Stellen mit dem Status ‚Veröffentlichen‘ als Beiträge mit dem Status ‚Entwurf erhalten ".
ERROR zurückgegeben:
Stichwort unerkannt. (Nahe "NICHT", bei Position 193)
Schlüsselwort nicht erkannt. (Nahe "EXISTS", an Position 197)
Symbol (Token) unerwartet. (Near "(" an Position 204)
CURRENT POINT
ich mit Wordpress API tat, und es funktioniert, aber ich brauche eine LEFT hinzuzufügen JOIN auch Produkte erhalten mit Namen wie der Name jeder . Produkt von Satz zurück unten Dies ist der Satz:
$args = array(
'posts_per_page' => -1,
'post_type' =>'product',
'post_status' => 'publish,draft',
'meta_query' => array(
array(
'key' => 'custom_code',
'compare' => 'NOT EXISTS'
)),
);
$posts_array = get_posts($args);
Jede Hilfe Vielen Dank im Voraus
Ändern Sie WHERE zu AND. Ändern Sie das endgültige UND in WHERE. – Strawberry
Well Meta-Schlüssel kann nicht sowohl 'custom_code' * UND * NULL sein. Sie sollten die Fehlermeldung hinzufügen, die Sie beobachten. –
Ich habe meinen Beitrag bearbeitet. –