wp_parse_args

Объединяет два массива, так что параметры первого массива (передаваемые) заменяют при совпадении параметры второго массива (по-умолчанию). В первый аргумент можно передать строку или массив.

Обычно в функцию передается массив с новыми параметрами и массив с параметрами по-умолчанию и функция их объединяет. В первом аргументе можно передать параметры в виде строки (text=текст&foo=нечто), они будут преобразованы в массив.

Эта функция часто используется в других функция WordPress, в которых подразумеваются параметры по умолчанию и передаваемые параметры, к таким функциям можно отнести get_posts(), wp_list_comments(), get_terms().

wp_parse_args() рекомендуется использовать в создаваемых функциях, в которые передается список параметров. Если определять каждый параметр отдельно как это принято при регистрации функции, то список параметров может быть очень длинным и неудобным. В таких случаях удобнее указать для функции один параметр $args и внутри функции в массиве $defaults указать параметры по-умолчанию. Затем обработать передаваемый параметр с помощью wp_parse_args(), тем самым объединив передаваемые параметры с установленными по умолчанию. Посмотрим на примере:

$args = wp_parse_args( $args, $defaults );
$args(строка/массив) (обязательный)

Массив параметров или строка параметров, которые перезапишут при совпадении параметры по умолчанию.Строка передается в формате строки запроса УРЛ:

type=post&posts_per_page=5&cat=1

Тоже самое массивом:

<?php
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;
}