WordPress WP_Query Platzhalter in “Schlüssel”

Lesezeit: 1 Minute

Ich habe eine einfache Frage, aber ich kann die Antwort nicht finden, wenn ich im Internet suche. Wie wird bei WP_Query der „key“-Wert aus einer „meta_query“ behandelt? Kann ich einen Platzhalter verwenden?

Zum Beispiel:

$args = array(
    'post-type' => 'post',
    'meta_query' => array(
        array(
            'key' => 'dates_%_participants',
            'compare' => 'LIKE',
            'value' => '"'.$user->ID.'"',
        )
    )
);

$query = new WP_Query($args);

Beachten Sie das „%“ im „Schlüssel“

  • @Howdy_McGee, du hast nicht recht. Es ist möglich. Siehe die Antwort. Szenario ist ein ACF-Repeater-Plugin, das solche Metaschlüssel erstellt.

    – Paradoxie

    16. November 2018 um 13:11 Uhr

Benutzer-Avatar
Steve

Fügen Sie der zu ersetzenden Abfrage einen Filter hinzu

meta_key = ‘daten_$

mit

meta_key LIKE ‘dates_%

In der functions.php:

function posts_where_dates( $where ) {  
    $where = str_replace("meta_key = 'dates_$", "meta_key LIKE 'dates_%", $where);
    return $where;
}

add_filter( 'posts_where' , 'posts_where_dates' );

Ihre Anfrage bleibt die gleiche, wie Sie sie hatten. dh

$args = array(
    'post-type' => 'post',
    'meta_query' => array(
        array(
            'key' => 'dates_$_participants',
            'compare' => '=',
            'value' => '"'.$user->ID.'"',  
        )
    )
);

Gut versteckt, aber hier dokumentiert: https://codex.wordpress.org/Plugin_API/Filter_Reference/posts_where

Die Antwort wurde aufgrund des geänderten Verhaltens von esc_sql() in WordPress 4.8.3 bearbeitet
https://make.wordpress.org/core/2017/10/31/changed-behaviour-of-esc_sql-in-wordpress-4-8-3/

1017340cookie-checkWordPress WP_Query Platzhalter in “Schlüssel”

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy