Поиск по сайту:
Человек, властвуя над другими, утрачивает собственную свободу (Ф. Бэкон).

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

29.01.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() для этого.

Читать  WordPress - Роли пользователей

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

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
На этом уроке, мы рассмотрим, как установить Apache, MariaDB, PHP7…

Спасибо!

Теперь редакторы в курсе.