Поиск по сайту:
Никому не должно уходить в печали после беседы с царем (Д. Понтано).

Как создать пользовательский мета-бокс в 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…

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

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