Функция get_submit_button() в WordPress: синтаксис, параметры, примеры

Функция GET_SUBMIT_BUTTON() │ WP 3.1.0

Функция get_submit_button() возвращает кнопку "Отправить" с заданным текстом и соответствующим классом.

Используемая функция

Эта функция вызывается внутри другой функции — submit_button().

Производительность

  • 1 вызов: 0.000051 сек (очень быстро)
  • 50000 вызовов: 1.38 сек (быстро)

Хуки

У этой функции нет хуков.

Возвращаемое значение

Строка. HTML-код кнопки "Отправить".

Синтаксис

get_submit_button( $text, $type, $name, $wrap, $other_attributes );

Параметры:

  • $text (строка): текст на кнопке.

    • По умолчанию: 'Сохранить изменения'
  • $type (строка): тип и CSS классы кнопки.

    • Основные значения: 'primary' (основная), 'small' (маленькая), 'large' (большая).
    • По умолчанию: 'primary large'
  • $name (строка): HTML имя кнопки "Отправить". Если атрибут id не указан в параметре $other_attributes, то имя будет использовано в качестве id кнопки.

    • По умолчанию: 'submit'
  • $wrap (логическое значение): true, если кнопку нужно заключить в тег <p>, иначе false.

    • По умолчанию: true
  • $other_attributes (массив|строка): Другие атрибуты для кнопки, которые будут добавлены к ней. Например, вы можете использовать array('id'=>'search-submit'). Эти пары ключ/значение будут как атрибут="значение".

    • По умолчанию: пустая строка

Примеры

Пример 1: Добавление кнопки "Отправить" в HTML код

echo get_submit_button( 'Применить', 'action', '', false, [ 'id' => 'doaction2' ] );

Результат:

Изменения

  • С версии 3.1.0 функция была добавлена.

Код функции

function get_submit_button( $text = '', $type = 'primary large', $name = 'submit', $wrap = true, $other_attributes = '' ) {
    if ( ! is_array( $type ) ) {
        $type = explode( ' ', $type ); // Преобразуем строку в массив.
    }

    $button_shorthand = array( 'primary', 'small', 'large' );
    $classes          = array( 'button' ); // Начальный класс для кнопки.

    foreach ( $type as $t ) {
        if ( 'secondary' === $t || 'button-secondary' === $t ) {
            continue; // Пропускаем не нужные классы.
        }
        // Добавляем классы кнопки.
        $classes[] = in_array( $t, $button_shorthand, true ) ? 'button-' . $t : $t; 
    }

    // Убираем пустые элементы и дубликаты, затем создаем строку классов.
    $class = implode( ' ', array_unique( array_filter( $classes ) ) );

    $text = $text ? $text : __( 'Сохранить изменения' ); // Если текст не задан, устанавливаем по умолчанию.

    // Устанавливаем id по умолчанию равным имени, если его не задали в $other_attributes.
    $id = $name; 
    if ( is_array( $other_attributes ) && isset( $other_attributes['id'] ) ) {
        $id = $other_attributes['id'];
        unset( $other_attributes['id'] ); // Убираем id из других атрибутов.
    }

    $attributes = '';
    // Формируем атрибуты кнопки.
    if ( is_array( $other_attributes ) ) {
        foreach ( $other_attributes as $attribute => $value ) {
            $attributes .= $attribute . '="' . esc_attr( $value ) . '" '; // Важно оставить пробел в конце.
        }
    } elseif ( ! empty( $other_attributes ) ) { // Если атрибуты переданы как строка.
        $attributes = $other_attributes;
    }

    // Не выводим пустые атрибуты name и id.
    $name_attr = $name ? ' name="' . esc_attr( $name ) . '"' : '';
    $id_attr   = $id ? ' id="' . esc_attr( $id ) . '"' : '';

    // Создаем HTML-код кнопки.
    $button  = '';

    if ( $wrap ) {
        $button = '

' . $button . '

'; // Оборачиваем кнопку в

, если нужно. } return $button; // Возвращаем HTML-код кнопки. }

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

  • submit_button()
  • wp_admin_notice()
  • wp_get_admin_notice()
  • WP_List_Table()

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *