Was macht wp_parse_args?

Lesezeit: 2 Minuten

Ich baue schon seit einiger Zeit WordPress-Widgets und habe immer Code wie diesen verwendet:

$instance = wp_parse_args( (array) $instance);

Es hat nie Probleme verursacht und wird an mehreren Stellen empfohlen (von Justin Tadlock, zwei WordPress-Bücher, die ich habe, etc.), aber keine dieser Quellen erklärt es wirklich warum.

Also, was macht das eigentlich und was würde passieren, wenn es weggelassen würde?

Laienhaft ausgedrückt ist es das Zusammenführen von Arrays.

Es wird häufig verwendet, weil es einer Funktion ermöglicht, mehrere Argumente zu akzeptieren, ohne dass der Code unordentlich aussieht. Dann geht der nächste Schritt, indem Sie dem Entwickler erlauben, Standardwerte einzurichten.

Hier kommt wp_parse_args ins Spiel, es führt übergebene Werte mit Standardwerten zusammen.

$args = wp_parse_args($passed_in_args, $default_values);

Es konvertiert auch eine URL-Abfragezeichenfolge in ein Array.

Hoffe das hilft

Benutzeravatar von Marek Sebera
Mark Sebera

https://developer.wordpress.org/reference/functions/wp_parse_args/

wp_parse_args ist ein generisches Dienstprogramm zum Zusammenführen eines Arrays von Argumenten und eines Arrays von Standardwerten. Es kann auch eine Zeichenfolge vom URL-Abfragetyp angegeben werden, die in ein Array umgewandelt wird (z. B. “id=5&status=draft”).

Es wird in ganz WordPress verwendet, um sich keine Gedanken über die Logik von Standardwerten und Eingaben machen zu müssen, und erzeugt ein stabiles Muster für die Weitergabe von Argumenten. Funktionen wie query_posts, wp_list_comments und get_terms sind gängige Beispiele für die vereinfachende Kraft von wp_parse_args.

Funktionen, die eine auf $args basierende Einstellung haben, können die Anzahl der Werte, die potenziell an sie übergeben werden können, unendlich erweitern, wodurch der Ärger mit superlangen Funktionsaufrufen vermieden wird, da es zu viele Argumente gibt, die man im Auge behalten muss, von denen viele nur funktionieren ist es, normalerweise gute Standardwerte in seltenen Fällen zu überschreiben.

Im Allgemeinen vereinfacht es den Funktionsaufruf, um lange Codeprüfungen zu vermeiden Aussehen/Existenz und Standardwerte von Variablen, die als Argumente übergeben werden

Steves Benutzeravatar
Steve

Dies ist der Code in WordPress wp-includes/functions.php Datei:

/**
 * Merge user defined arguments into defaults array.
 *
 * This function is used throughout WordPress to allow for both string or array
 * to be merged into another array.
 *
 * @since 2.2.0
 *
 * @param string|array $args Value to merge with $defaults
 * @param array $defaults Array that serves as the defaults.
 * @return array Merged user defined values with defaults.
 */
function wp_parse_args( $args, $defaults="" ) {
    if ( is_object( $args ) )
        $r = get_object_vars( $args );
    elseif ( is_array( $args ) )
        $r =& $args;
    else
        wp_parse_str( $args, $r );

    if ( is_array( $defaults ) )
        return array_merge( $defaults, $r );

    return $r;
}

  • Dies ist keine wahre Antwort, wie sie steht. Der Code mag für sich selbst stehen, aber dennoch sollte eine Erklärung hinzugefügt werden. Setzen Sie zumindest so etwas wie die obigen Funktionskommentare, die unerfahrene Entwickler überfliegen könnten.

    – SunnyRed

    1. Oktober 2013 um 19:15 Uhr

  • Das hat also keinen Wert darauf hingewiesen zu werden, ohne Erklärungen.

    – Maxime Culea

    30. Juni 2021 um 15:33 Uhr

1401280cookie-checkWas macht wp_parse_args?

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

Privacy policy