WordPress как на ладони
wordpress jino

wp_parse_args() WP 2.2

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

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

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

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

Работает на основе: wp_parse_str()
✈ 1 раз = 0.000018с = очень быстро | 50000 раз = 0.08с = скорость света PHP 7.1.5, WP 4.8.2

Хуков нет.

Возвращает

Массив данных.

Использование

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

Массив параметров или строка параметров, которые перезапишут при совпадении параметры по умолчанию.

Строка передается в формате строки запроса УРЛ:

$args = 'type=post&posts_per_page=5&cat=1';

Массив передается как обычно:

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

Если передать какой-то объект, то функция получит все его свойства. Свойства станут массивом параметров.

$args = (object) array( 'type'=>'post', 'posts_per_page'=>5, 'cat'=>'1' )
$defaults(массив)

Массив параметров по умолчанию, которые будут заменены на параметры передаваемые в $args.

По умолчанию: ''

Примеры

#1 Передача параметров функции и установка дефолтных

Этот пример показывает как с помощью функции wp_parse_args() указать параметры функции по умолчанию и заменять их если передан параметр с таким же ключом.

function foo( $args ){
	// определим параметры по умолчанию
	$defaults = array(
		'param1' => 'значение',
		'param2' => true,
	);

	$args = wp_parse_args( $args, $defaults );
}

// вызовем функцию 
foo( 'param1=значение&param2=0' );

// или так
foo( array(
	'param1' => 'нечто',
	'param2' => 0,
) );

#2 Пример использования wp_parse_args

wp_parse_args() используется внутри функции, для определения передаваемые в функцию параметров. Этот пример показывает как передаваемые параметры объединяются с параметрами по умолчанию:

// определим параметры по умолчанию
$defaults = array(
	'type' => 'post',
	'before' => "<p>",
	'after' => "</p> \n",
	'echo' => TRUE
);

// объединим переданные параметры в $args с параметрами по умолчанию 
$args = wp_parse_args( $args, $defaults );

#2 Демонстрация работы

В этом примере создадим функцию, которая использует wp_parse_args() и вызовем её в разных вариантах:

/**
 * Определим новую функцию
 */
function explain_parse_args( $args ) {
	$defaults = array (
		'text' => 'wp_parse_args() объединим $args и $defaults',
		'before' => "<p>",
		'after' => "</p> \n",
		'echo' => TRUE
	);

	// Получим входящие параметры и сравним их с базовыми
	$args = wp_parse_args( $args, $defaults );

	// Определим переменные: $type, $before и т.д.
	extract( $args, EXTR_SKIP );

	$output = $before . $text . $after;

	if (!$echo) 
		return $output;

	echo $output;
}

/**
 * Вызовем функцию без параметров
 * В результате получим: 
 * <p>wp_parse_args() объединим $args и $defaults</p> \n
 */
explain_parse_args();

/**
 * Вызовем функцию и укажем параметры в виде массива
 * Получим:
 * <p class='specialclass'>Лучшее предложение</p> \n
 */
explain_parse_args( array (
	'text' => "Лучшее предложение",
	'before' => "<p class='specialclass'>"
) );

/**
 * Вызовем функции и передадим параметры строкой 
 * Получим:
 * <p></p> \n
 */
explain_parse_args( 'echo=1&text=0' );

Код wp parse args: wp-includes/functions.php WP 4.9

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

Cвязанные функции

Из раздела: Вспомогательные

Www.weco-massiv.ru

Индивидуальное изготовление мебели на заказ www.weco-massiv.ru.

www.weco-massiv.ru

wp_parse_args 2 комментария
  • campusboy1896 cайт: www.youtube.com/c/wpplus @

    Судя по коду, она ещё и объект может принимать первым параметром smile

    1
    Ответитьмесяц назад #

Здравствуйте, !

Ваш комментарий