将用户属性与已知属性组合,并在需要时填写默认值。

原型

shortcode_atts( array $pairs, array $atts, string $shortcode = '' )

描述

这些对应该被认为是调用者支持的所有属性并作为列表给出。返回的属性仅包含$ pairs列表中的属性。

参数

$pairs (array) (Required) 支持的属性及其默认值的完整列表。

$atts (array) (Required) 短代码标记中的用户定义属性。

$shortcode (string) (Optional)  为上下文提供的短代码名称,用于启用过滤

返回值

(array)  合并和过滤的属性列表。

源文件

路径:wp-includes/shortcodes.php

<?php
...
function shortcode_atts( $pairs, $atts, $shortcode = '' ) {
	$atts = (array)$atts;
	$out = array();
	foreach ($pairs as $name => $default) {
		if ( array_key_exists($name, $atts) )
			$out[$name] = $atts[$name];
		else
			$out[$name] = $default;
	}
	/**
	 * Filters a shortcode's default attributes.
	 *
	 * If the third parameter of the shortcode_atts() function is present then this filter is available.
	 * The third parameter, $shortcode, is the name of the shortcode.
	 *
	 * @since 3.6.0
	 * @since 4.4.0 Added the `$shortcode` parameter.
	 *
	 * @param array  $out       The output array of shortcode attributes.
	 * @param array  $pairs     The supported attributes and their defaults.
	 * @param array  $atts      The user defined shortcode attributes.
	 * @param string $shortcode The shortcode name.
	 */
	if ( $shortcode ) {
		$out = apply_filters( "shortcode_atts_{$shortcode}", $out, $pairs, $atts, $shortcode );
	}
	return $out;
}
...
?>

其他

英文文档:https://developer.wordpress.org/reference/functions/shortcode_atts/