shortcode_atts()

Комбинирует пользовательские атрибуты с известными атрибутами и заполняет значения по умолчанию, если это необходимо
Функция WordPress
INT 2.5.0
WordPress Icon
Содержание
  1. Описание функции
  2. Примеры использования
  3. Комбинирование атрибутов
  4. Заполнение значений по умолчанию
  5. Вопросы и ответы
  6. Как добавить новый атрибут в список поддерживаемых атрибутов?
  7. Как изменить значение атрибута по умолчанию?
  8. Как получить список всех поддерживаемых атрибутов?
  9. Как отфильтровать пользовательские атрибуты перед их комбинированием с известными атрибутами?
  10. Как использовать функцию shortcode_atts() для создания атрибутов по умолчанию?
  11. Как использовать функцию shortcode_atts() для комбинирования пользовательских атрибутов с известными атрибутами?
  12. Как использовать функцию shortcode_atts() для заполнения значений атрибутов по умолчанию?
  13. Как использовать функцию shortcode_atts() для фильтрации атрибутов перед их комбинированием?
  14. Как использовать функцию shortcode_atts() для получения комбинированного и отфильтрованного списка атрибутов?
  15. Связанные элементы

Описание функции

Функция shortcode_atts() объединяет пользовательские атрибуты с известными атрибутами и заполняет значения по умолчанию, когда это необходимо. Она используется в WordPress для обработки шорткодов, которые позволяют вставлять динамические элементы в контент.

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

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

Функция shortcode_atts() принимает три параметра: $pairs, $atts и $shortcode. Она возвращает массив, содержащий объединенные и отфильтрованные атрибуты.

  • $pairs (array) — Обязательный. Полный список поддерживаемых атрибутов и их значений по умолчанию.
  • $atts (array) — Обязательный. Атрибуты, определенные пользователем в теге шорткода.
  • $shortcode (string) — Необязательный. Название шорткода, предоставленное для контекста, чтобы можно было применить фильтрацию. По умолчанию: ».

Функция возвращает массив, содержащий объединенные и отфильтрованные атрибуты.

<?php
// Полный список поддерживаемых атрибутов и их значения по умолчанию
$pairs = array(
    'color' => 'red',
    'size' => 'medium',
    'weight' => 'normal'
);
// Атрибуты, определенные пользователем в теге шорткода
$atts = array(
    'color' => 'blue',
    'weight' => 'bold'
);
// Объединение и фильтрация атрибутов
$combined_atts = shortcode_atts( $pairs, $atts );
// Вывод результата
var_dump( $combined_atts );
?>

В этом примере мы объединяем и фильтруем атрибуты, определенные пользователем в теге шорткода, с полным списком поддерживаемых атрибутов и их значениями по умолчанию. Результатом будет массив, содержащий объединенные и отфильтрованные атрибуты:

array(3) {
  ["color"]=>
  string(4) "blue"
  ["size"]=>
  string(6) "medium"
  ["weight"]=>
  string(4) "bold"
}

Примеры использования

Комбинирование атрибутов


/**
 * Combines user attributes with known attributes and fill in defaults when needed.
 *
 * @param array  $pairs     Entire list of supported attributes and their defaults.
 * @param array  $atts      User defined attributes in shortcode tag.
 * @param string $shortcode The name of the shortcode, provided for context to enable filtering.
 * @return array Combined and filtered attribute list.
 */
function shortcode_atts( $pairs, $atts, $shortcode = '' ) {
    // Combine the user attributes with the known attributes and fill in defaults when needed
    $atts = array_intersect_key( $atts, $pairs );
    return array_merge( $pairs, $atts );
}

Функция shortcode_atts() используется для комбинирования пользовательских атрибутов с известными атрибутами и заполнения значений по умолчанию, если это необходимо. Она принимает три параметра: $pairs — массив со всеми поддерживаемыми атрибутами и их значениями по умолчанию, $atts — массив с пользовательскими атрибутами из тега шорткода и $shortcode — имя шорткода, предоставленное для контекста, чтобы обеспечить фильтрацию (необязательный параметр).

Заполнение значений по умолчанию


// Define the supported attributes and their defaults
$pairs = array(
    'color' => 'red',
    'size' => 'medium',
    'weight' => 'bold'
);
// User defined attributes
$atts = array(
    'color' => 'blue',
    'style' => 'italic'
);
// Combine the attributes and fill in defaults
$combined_atts = shortcode_atts( $pairs, $atts );
// Output the combined attributes
var_dump( $combined_atts );

В данном примере у нас есть массив $pairs, который содержит поддерживаемые атрибуты и их значения по умолчанию. Массив $atts содержит пользовательские атрибуты из тега шорткода. Мы используем функцию shortcode_atts(), чтобы объединить атрибуты и заполнить значения по умолчанию. Результатом будет новый массив $combined_atts, который содержит комбинированные и отфильтрованные атрибуты. В данном случае, значение атрибута «color» будет заменено на «blue», а атрибут «style» будет добавлен в итоговый массив. Результат будет выведен с помощью функции var_dump().

Вопросы и ответы

Как добавить новый атрибут в список поддерживаемых атрибутов?

Для добавления нового атрибута в список поддерживаемых атрибутов в функции shortcode_atts() необходимо изменить массив $pairs, который содержит список атрибутов и их значений по умолчанию. Добавьте новый элемент в массив, указав имя атрибута в качестве ключа и значение атрибута по умолчанию в качестве значения.


function custom_shortcode_atts( $pairs, $atts ) {
    $new_atts = array(
        'new_attribute' => 'default_value',
    );
    $atts = shortcode_atts( $new_atts, $atts );
    return $atts;
}
add_filter( 'shortcode_atts_shortcode_name', 'custom_shortcode_atts', 10, 2 );

Как изменить значение атрибута по умолчанию?

Для изменения значения атрибута по умолчанию в функции shortcode_atts() необходимо изменить соответствующий элемент массива $pairs, указав новое значение в качестве значения элемента.


function custom_shortcode_atts( $pairs, $atts ) {
    $pairs['attribute_name'] = 'new_default_value';
    $atts = shortcode_atts( $pairs, $atts );
    return $atts;
}
add_filter( 'shortcode_atts_shortcode_name', 'custom_shortcode_atts', 10, 2 );

Как получить список всех поддерживаемых атрибутов?

Для получения списка всех поддерживаемых атрибутов в функции shortcode_atts() можно использовать массив $pairs, который содержит список атрибутов и их значений по умолчанию. Просто выведите массив $pairs, чтобы увидеть все доступные атрибуты.


function custom_shortcode_atts( $pairs, $atts ) {
    var_dump( $pairs );
    $atts = shortcode_atts( $pairs, $atts );
    return $atts;
}
add_filter( 'shortcode_atts_shortcode_name', 'custom_shortcode_atts', 10, 2 );

Как отфильтровать пользовательские атрибуты перед их комбинированием с известными атрибутами?

Функция shortcode_atts() позволяет комбинировать пользовательские атрибуты с известными атрибутами и заполнять значения по умолчанию, если это необходимо. Для этого необходимо передать два обязательных параметра: $pairs и $atts.

Параметр $pairs представляет собой массив, содержащий список поддерживаемых атрибутов и их значения по умолчанию.

Параметр $atts представляет собой массив, содержащий пользовательские атрибуты, определенные в теге шорткода.

Перед комбинированием атрибутов с помощью функции shortcode_atts() можно отфильтровать пользовательские атрибуты с помощью хука shortcode_atts_{$shortcode}. Для этого необходимо создать функцию, которая будет принимать два параметра: $out и $pairs. Параметр $out представляет собой массив, содержащий отфильтрованные атрибуты, а параметр $pairs представляет собой массив, содержащий список поддерживаемых атрибутов и их значения по умолчанию.


function filter_shortcode_atts( $out, $pairs ) {
    // Фильтрация пользовательских атрибутов
    // ...
    return $out;
}
add_filter( 'shortcode_atts_{$shortcode}', 'filter_shortcode_atts', 10, 2 );

Как использовать функцию shortcode_atts() для создания атрибутов по умолчанию?

Функция shortcode_atts() позволяет создавать атрибуты по умолчанию для шорткода. Для этого необходимо передать два обязательных параметра: $pairs и $atts.

Параметр $pairs представляет собой массив, содержащий список поддерживаемых атрибутов и их значения по умолчанию.

Параметр $atts представляет собой массив, содержащий пользовательские атрибуты, определенные в теге шорткода.


$pairs = array(
    'attr1' => 'default_value1',
    'attr2' => 'default_value2',
);
$atts = array(
    'attr1' => 'user_value1',
);
$result = shortcode_atts( $pairs, $atts );
// Результат: array( 'attr1' => 'user_value1', 'attr2' => 'default_value2' )

Как использовать функцию shortcode_atts() для комбинирования пользовательских атрибутов с известными атрибутами?

Функция shortcode_atts() позволяет комбинировать пользовательские атрибуты с известными атрибутами и заполнять значения по умолчанию, если это необходимо. Для этого необходимо передать два обязательных параметра: $pairs и $atts.

Параметр $pairs представляет собой массив, содержащий список поддерживаемых атрибутов и их значения по умолчанию.

Параметр $atts представляет собой массив, содержащий пользовательские атрибуты, определенные в теге шорткода.


$pairs = array(
    'attr1' => 'default_value1',
    'attr2' => 'default_value2',
);
$atts = array(
    'attr1' => 'user_value1',
    'attr3' => 'user_value3',
);
$result = shortcode_atts( $pairs, $atts );
// Результат: array( 'attr1' => 'user_value1', 'attr2' => 'default_value2', 'attr3' => 'user_value3' )

Как использовать функцию shortcode_atts() для заполнения значений атрибутов по умолчанию?

Функция shortcode_atts() используется для комбинирования пользовательских атрибутов с известными атрибутами и заполнения значений по умолчанию, когда это необходимо.

Для использования функции shortcode_atts() необходимо передать два обязательных параметра: $pairs и $atts, и один необязательный параметр: $shortcode.

Параметр $pairs должен быть массивом, содержащим полный список поддерживаемых атрибутов и их значений по умолчанию.

Параметр $atts должен быть массивом, содержащим пользовательские атрибуты, переданные в теге шорткода.

Параметр $shortcode является необязательным и предоставляет имя шорткода для контекста и возможности фильтрации.


$pairs = array(
    'color' => 'red',
    'size' => 'medium',
    'weight' => 'bold'
);
$atts = array(
    'color' => 'blue',
    'weight' => 'normal'
);
$combined_atts = shortcode_atts( $pairs, $atts );
print_r( $combined_atts );

Результат выполнения кода:


Array
(
    [color] => blue
    [size] => medium
    [weight] => normal
)

Как использовать функцию shortcode_atts() для фильтрации атрибутов перед их комбинированием?

Функция shortcode_atts() также позволяет фильтровать атрибуты перед их комбинированием.

Для этого необходимо использовать хук ‘shortcode_atts_{$shortcode}’, где $shortcode — имя шорткода.

Функция, добавленная в этот хук, будет принимать два параметра: $out и $pairs.

Параметр $out содержит текущий список атрибутов, а параметр $pairs содержит полный список поддерживаемых атрибутов и их значений по умолчанию.


function custom_shortcode_atts( $out, $pairs ) {
    // Фильтрация атрибутов
    $out['color'] = 'green';
    return $out;
}
add_filter( 'shortcode_atts_my_shortcode', 'custom_shortcode_atts', 10, 2 );
$pairs = array(
    'color' => 'red',
    'size' => 'medium',
    'weight' => 'bold'
);
$atts = array(
    'color' => 'blue',
    'weight' => 'normal'
);
$combined_atts = shortcode_atts( $pairs, $atts, 'my_shortcode' );
print_r( $combined_atts );

Результат выполнения кода:


Array
(
    [color] => green
    [size] => medium
    [weight] => normal
)

Как использовать функцию shortcode_atts() для получения комбинированного и отфильтрованного списка атрибутов?

Функция shortcode_atts() возвращает комбинированный и отфильтрованный список атрибутов.

Этот список можно использовать для дальнейшей обработки или вывода данных.


$pairs = array(
    'color' => 'red',
    'size' => 'medium',
    'weight' => 'bold'
);
$atts = array(
    'color' => 'blue',
    'weight' => 'normal'
);
$combined_atts = shortcode_atts( $pairs, $atts );
foreach ( $combined_atts as $key => $value ) {
    echo $key . ': ' . $value . '<br>';
}

Результат выполнения кода:


color: blue
size: medium
weight: normal

Функция shortcode_atts() в WordPress позволяет комбинировать пользовательские атрибуты с известными атрибутами и заполнять значения по умолчанию. Она также предоставляет возможность фильтрации атрибутов перед их комбинированием. Результатом работы функции является комбинированный и отфильтрованный список атрибутов, который можно использовать для дальнейшей обработки или вывода данных. Функция shortcode_atts() является полезным инструментом для разработчиков WordPress, позволяющим упростить работу с атрибутами шорткодов.

Связанные элементы

  • Функция add_shortcode(): регистрирует новый шорткод.
  • Функция remove_shortcode(): удаляет зарегистрированный шорткод.
  • Функция do_shortcode(): выполняет шорткоды в заданной строке.
  • Хук shortcode_atts_{$shortcode}: позволяет изменять атрибуты шорткода перед их комбинированием.
  • Класс WP_Embed: обеспечивает вставку контента из других сайтов.
  • Класс WP_Http: предоставляет функциональность для отправки HTTP-запросов.
  • Класс WP_Query: осуществляет запросы к базе данных WordPress для получения постов и других типов записей.
  • Класс WP_Rewrite: обрабатывает правила перезаписи URL-адресов.
Обсуждение