Es:Referencia de Funciones/wp parse args

来自WordPress中文文档
跳转至: 导航搜索

Descripción

wp_parse_args es una utilidad genérica para unir un array de argumentos con un array de valores por defecto. Si se le da una cadena de interrogación URL también puede convertirla en un array (p.ej. "id=5&status=draft").

Se utiliza en WordPress para evitar preocuparse por la lógica de los valores por defecto en las entradas, y facilita un patrón estable para pasar argumentos. Funciones como query_posts, wp_list_comments y get_terms son ejemplos comunes del poder de simplificación de wp_parse_args.

Las funciones que tienen un parámetro basado en $args son capaces de expandir infinitamente el número potencial de valores que se pueden pasar entre ellas, evitando las molestias que generan las largas llamadas de función con demasiados argumentos, muchos de los cuales con la única función de sobreescribir valores que harían un buen valor por defecto en raras ocasiones.

Uso

wp_parse_args() se utiliza dentro de una función definida para procesar argumentos de entrada. Debajo tenemos un ejemplo de como wp_parse_args() puede unir un array de defaults con un array de argumentos mezclados.

/**
 * Define el array de valores por defecto
 */ 
$defaults = array(
	'type' => 'post',
	'before' => "<p>",
	'after' => "</p> \n",
	'echo' => TRUE,
);
/**
 *  Convierte el $args entrante en un array y lo mezcla con  $defaults
 */ 
$args = wp_parse_args( $args, $defaults );

/**
 * OPCIONAL: Declare cada elemento en $args como variables separadas p.ej. $type, $before.
 */ 
extract( $options, EXTR_SKIP );

Parámetros

tt$args/tt
(array/string) (required) Cadena de consulta o array de argumentos mezclados que sustituirán los valores en $defaults.
Default: Nonenoinclude

div class=template-description style=padding: 0 1.5em; border: 1px solid #eeeeee; background-color: #f9f9f9

Notes

This template is for standardizing how parameters look in the Function Reference and in Template Tags. Here is an example of this template being called: prenowiki检查到模板循环:模板:Parameter/nowiki/pre 检查到模板循环:模板:Parameter

The usage of this template is below: prenowiki检查到模板循环:模板:Parameter/nowiki/pre Let's take a closer look at the parameters..

name
The name of the parameter.
datatype
The datatype that should be given for this parameter when called.
  • string
  • integer
  • boolean
  • mixed
description
A short description of the parameter.
importance
Set this parameter to optional if the parameter is optional. Otherwise, do not declare this parameter—it defaults to required.
  • required
  • optional
default
If this parameter is optional, ttdefault/tt is the value that will be used if the parameter is not declared.

wordpress.org.cn /div /noinclude Puede pasarse en estilo de consulta URL

type=post&posts_per_page=5&cat=1

O como una definición de array

array('type'=>'post', 'posts_per_page' => 5, 'cat' => '1')

tt$defaults/tt
(array) (required) Array de los valores por defecto que serán sustituidos por los de $args
Default: Nonenoinclude

div class=template-description style=padding: 0 1.5em; border: 1px solid #eeeeee; background-color: #f9f9f9

Notes

This template is for standardizing how parameters look in the Function Reference and in Template Tags. Here is an example of this template being called: prenowiki检查到模板循环:模板:Parameter/nowiki/pre 检查到模板循环:模板:Parameter

The usage of this template is below: prenowiki检查到模板循环:模板:Parameter/nowiki/pre Let's take a closer look at the parameters..

name
The name of the parameter.
datatype
The datatype that should be given for this parameter when called.
  • string
  • integer
  • boolean
  • mixed
description
A short description of the parameter.
importance
Set this parameter to optional if the parameter is optional. Otherwise, do not declare this parameter—it defaults to required.
  • required
  • optional
default
If this parameter is optional, ttdefault/tt is the value that will be used if the parameter is not declared.

wordpress.org.cn /div /noinclude

Ejemplo

Debajo tenemos un ejemplo de función que utiliza lel sistema wp_parse_args para manejar un único argumento $args, al cual se le puede dar cualquier valor que usted desee. En este caso $args almacena valores detallados para sustituir en presentaciones de información en pantalla, un patrón que se puede encontrar en muchas funciones de WordPress.

/**
 * Define una nueva función que utiliza $args y wp_parse_args()
 */
function explain_parse_args( $args ) {
	$defaults = array (
 		'text' => 'wp_parse_args() merges $args into $defaults',
 		'before' => "<p>",
 		'after' => "</p> \n",
 		'echo' => TRUE,
	);
	
	// Analiza el $args entrante y lo convierte en un array que mezclará con $defaults
	$args = wp_parse_args( $args, $defaults );
	
	// OPCIONAL: Declara cada elemento de $args como una variable separada $type, $before.
	extract( $options, EXTR_SKIP );

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

/**
 * Ejecuta nuestra nueva función utilizando los valores por defecto($args vacío)
 * Esto mostrará: 
 * 	<p>wp_parse_args() merges $args into $defaults</p>
 */
explain_parse_args();

/**
 * Ejecuta nuestra función sustituyendo varias opciones con un array
 * Esto mortrará la salida anterior con los valores modificados :
 * 	<p class='specialclass'>A better explanation</p>
 */
explain_parse_args( array (
	'text' => "A better explanation",
	'before' => "<p class='specialclass'>",
) );

/**
 * Podemos pasar, también, una consulta de estilo URL y se convertirá 
 * Esto establecería $args['echo'] a 1 y $args['text'] a 0	
 */
explain_parse_args( 'echo=1&text=0' );