Отдельная личность не обязана быть мудрее целой нации (О. Бальзак).

Как создать пользовательский мета-бокс в WordPress

FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (4 оценок, среднее: 5,00 из 5)
Загрузка...
29 января 2017
Как создать пользовательский метабокс в WordPress
В этом посте я объясню, как создать пользовательский мета-бокс  в WordPress. Когда вы редактирует свой пост, страница состоит из множества мета-боксов по умолчанию, такие как: редактор, изображение записи, опубликовать, рубрики, теги и т.д. Эти мета-боксы находятся на правой стороне экрана редактирования.

Вы можете создавать свои собственные мета-боксы, путем добавления нескольких кодов в файл function.php вашей темы в WordPress или можете создать отдельный плагин для этого. Ниже примеры демонстрируют шаги, как создать пользовательские мета-боксы.

Как создать мета-бокс

Добавьте ниже крюк в add_meta_boxes действие и сделать вызов add_meta_box().

/* Добавить метабокс на экран редактирования поста */add_action( 'add_meta_boxes', 'andreyex_add_custom_box' );
function andreyex_add_custom_box() {
    $screens = array( 'post', 'my_cpt' );
    foreach ( $screens as $screen ) {
        add_meta_box(
            'andreyex_box_id',            // Unique ID
            'Пользовательский заголовок метабокса',      // Заголовок мета-бокса
            'andreyex_inner_custom_box',  // Content callback
             $screen                      // тип поста
        );
    }
}

 

Создание формы мета-бокса

Ниже код будет создать форму для пользовательского meta box. Пожалуйста, измените приведенный ниже код согласно вашему требованию.

/* Печать содержимого бокса */function andreyex_inner_custom_box( $post ) {
?>
   <label for="andreyex_field"> Описание для этой области </label>
    <select name="andreyex_field" id="andreyex_field" class="postbox">
        <option value="">Выберите что-то…</option>
        <option value="something">Что-то</option>
        <option value="else">Иначе</option>
    </select>
<?php
}
?>

 

Сохранение значений мета-полей

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

add_action( 'save_post', 'andreyex_save_postdata' );
function andreyex_save_postdata( $post_id ) {
    if ( array_key_exists('andreyex_field', $_POST ) ) {
        update_post_meta( $post_id,
           '_my_meta_value_key',
            $_POST['andreyex_field']
        );
    }
}

 

Получение значений мета-полей

Отображение мета значения в боксе из базы данных на экране редактирования поста.

<?php $value = get_post_meta( $post->ID, '_my_meta_value_key', true ); ?>
<select name="andreyex_field" id="andreyex_field" class="postbox">
    <option value="">Выберите что-то…</option>
    <option value="something" <?php if ( 'something' == $value ) echo 'selected'; ?>>Что-то</option>
    <option value="else" <?php if ( 'else' == $value ) echo 'selected'; ?>>Иначе</option>
</select>

 

Как удалить Meta Boxes

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Просмотров: 71

Если статья понравилась, то поделитесь ей в социальных сетях:

Добавить комментарий

Войти с помощью: 

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

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close