Добавляем произвольные поля в WordPress

Добавляем произвольные поля в WordPress

Продолжаем наше знакомство с админкой WordPress, и ее модификацией под свои нужды. Бывают ситуации, когда готовый шаблон под wordpress не имеет нужных возможностей. К примеру, на игровом сайте нужно в отдельном окне вывести вес файла с игрой, или в онлайн-кинотеатре поставить дату создания фильма.В этом случае необходимо добавлять произвольные поля в админку, которые заполняются во время создания записи и последующей публикации статьи.

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

WordPress добавление поля

Откроем файл functions.php и вставим строки:

add_action('add_meta_boxes', 'extra_fields', true);

и

function extra_fields(){
    add_meta_box('extra_fields', 'Название блока дополнительных полей', 'extra_fields_box_func', array('post'), 'normal', 'high');
}

Эта функция выводит Ваши произвольные поля в админ панель wordpress, вставляем и это







Ну и наконец вставляем функцию сохранения значений полей:


Значения между тегами <label>Поле 1</label> будет отображаться в админке, поэтому их следует назвать по своему усмотрению, согласно его назначению.

Значения pole_1, pole_2, … и тд также можно поставить свои, только нужно незабыть их изменить и в других участках кода name=»extra[pole_1]», name=»extra[pole_2]», … и тд.

Получать и выводить сохраненне значения нужного поля, например в файле single.php, можно при помощи этой функции:

echo get_post_meta($post->ID, 'pole_X', true);

где $post->ID ID записи, а pole_X ее имя.

Ниже приведен скрин работающего примера, как располагаются произвольные поля в админке одного из моих сайтов.

Добавляем произвольные поля в WordPress, рисунок 1рисунок 1

Ну вот впринципе и все.

В заключение хочу добавить, поле «Имя поля» нужно заполнять латиницей без пробелов, и без использования специальных символов, только буквы, цифры и подчеркивание.

Автор статьи: Alec Morty

Опубликовано: 14:17-25.03.2019

5 Комментариев —  Развернуть

  • Максим:

    У вас ошибка в скрипте
    $key=—>$value, а должно быть $key=>$value

  • Сергей:

    Добрый день.
    А как назначить мета боксы для страниц? Исправил здесь …. add_meta_box(‘extra_fields’, …..array(‘page’), на страницы, а далее ?
    Подскажите пожалуйста.

  • Александр:

    =—>в строчке $_POST[‘extra’] as $key=—>$value сейчас уже не работает в последних версиях php, нужно => использовать, а так спасибо за статью!

  • Иван:

    Откуда взялось $_POST[‘extra’] ??? Что это за данные и как они сюда попали?


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

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