Функция объединяет переданные в шорткод атрибуты с атрибутами шорткода по умолчанию. Удаляет неподдерживаемые атрибуты.
У меня на сайте также есть подробный урок про Шорткоды WordPress.
shortcode_atts( $pairs, $atts, $shortcode = '' )
$atts
. Такой своего рода белый список атрибутов. Не используйте ВЕРХНИЙ регистр или camelCase при указании атрибутов. Только нижний регистр.Возвращает ассоциативный массив с атрибутами.
print_r( shortcode_atts( array( 'name' => 'Миша', 'favorite_color' => 'unknown' ), array( 'name' => 'Миша', 'favorite_color' => 'black', 'car' => 'Porsche' ) ) ); // Выведет: Array ( [name] => Миша [favorite_color] => 'black' )
Функция содержит фильтр-хук, который появился в версии WordPress 3.6.0.
$out = apply_filters( "shortcode_atts_{$shortcode}", $out, $pairs, $atts, $shortcode );
То есть по сути мы можем подменить какие-то атрибуты в массиве-результате для определённого шорткода. Давайте попробуем взять предыдущий пример и зафорсить в нём значение цвета #000
, если указан цвет black
. И да, допустим наш шорткод будет [about]
.
add_filter( 'shortcode_atts_about', 'truemisha_about_shortcode', 25, 4 ); function truemisha_about_shortcode( $out, $pairs, $atts, $shortcode ) { if( 'black' === $out[ 'favorite_color' ] ) { $out[ 'favorite_color' ] = '#000'; } return $out; }
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.