WordPress.org

Ready to get started?Download WordPress

Codex

Attention Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

it:Riferimento funzioni/wp parse args

Descrizione

wp_parse_args è un'utilità generica che si usa per fondere un array di argomenti con un array di valori predefiniti. Può ricevere in input anche la query string di un URL che verrà convertita in un array (es. "id=5&status=bozza").

È usata in tutto WordPress per evitare di preoccuparsi della logica dei valori predefiniti e di quelli di input, e produce un modello stabile per passare gli argomenti. Funzioni come query_posts, wp_list_comments e get_terms sono comuni esempi del potere semplificatorio di wp_parse_args.

Le funzioni che hanno impostazioni basate su un $args sono in grado di espandere all'infinito il numero di valori che possono essere potenzialmente passate loro, evitando la seccatura di dover effettuare chiamate molto lunghe a funzioni in quanto ci sono troppi argomenti di cui tenere traccia, la cui funzione di molti è quella di sovrascrivere i valori di default di solito buoni in rare occasioni.

Utilizzo

wp_parse_args() si usa all'interno della funzione che si sta definendo per elaborare gli argomenti in entrata. Di seguito vi è un esempio di come wp_parse_args() può combinare un array di valori predefiniti con un array di argomenti misti.

/**
 * Definisce l'array con i valori di default
 */ 
$defaults = array(
	'type' => 'post',
	'before' => "<p>",
	'after' => "</p> \n",
	'echo' => TRUE
);

/**
 * Parsifica l'argomento $args in entrata in un array e lo combina con $defaults
 */ 
$args = wp_parse_args( $args, $defaults );

/**
 * OPZIONALE: Dichiara ogni elemento in $args come variabile, es. $type, $before.
 */ 
extract( $args, EXTR_SKIP );

Parametri

$args
(array/string) (richiesto) Query string o array di argomenti misti che sovrascriveranno i valori in $defaults.
Default: Nessuno

Può essere passato come un URL in stile query-string

type=post&posts_per_page=5&cat=1

o come una definizione di array

array( 'type' => 'post', 'posts_per_page' => 5, 'cat' => '1' )
$defaults
(array) (richiesto) Array dei valori predefiniti che verranno sovrascritti da $args
Default: Nessuno

Esempio

Di seguito vi è una funzione di esempio che usa wp_parse_args per gestire il suo unico argomento $args, a cui si può dare qualunque valore si voglia.

/**
 * Definisce una nuova funzione che usa $args e wp_parse_args()
 */
function explain_parse_args( $args ) {
	$defaults = array (
 		'text' => 'wp_parse_args() combina $args in $defaults',
 		'before' => "<p>",
 		'after' => "</p> \n",
 		'echo' => TRUE
	);
	
	// Parsifica $args in entrata in un array e lo combina con $defaults
	$args = wp_parse_args( $args, $defaults );
	
	// OPZIONALE: Dichiara ogni elemento in $args come sua propria variabile, es. $type, $before.
	extract( $args, EXTR_SKIP );

	$output = $before . $text . $after;
	
	if (!$echo) 
		return $output;
	
	echo $output;
}

/**
 * Esegue la funzione usando i valori di default (no $args)
 * Questo stampa: 
 * 	<p>wp_parse_args() combina $args in $defaults</p>
 */
explain_parse_args();

/**
 * Esegue la funzione con alcune opzioni sovrascritte da un array.
 * Questo stampa l'output con i valori degli argomenti text e before modificati:
 * 	<p class='specialclass'>Una spiegazione migliore</p>
 */
explain_parse_args( array (
	'text' => "Una spiegazione migliore",
	'before' => "<p class='specialclass'>"
) );

/**
 * È anche possibile passare una query string in stile URL la quale verrà convertita.
 * Questo imposta $args['echo'] a 1 e $args['text'] a 0
 */
explain_parse_args( 'echo=1&text=0' );

Log delle modifiche

Da: 2.2.0

File sorgente

wp_parse_args() si trova in wp-includes/functions.php.

Correlati

shortcode_atts()

Si veda anche l'indice di Riferimento funzioni e l'indice di Tag dei template.