Публикация в группе: Плагин WP-Recall - Личный кабинет на WordPress

Категории группы: Полезное

Внимание! С 16-ой версии плагина, произвольные поля формы публикации для произвольных типов записей стало возможным создавать прямо из административной части в разделе "Форма публикации". Данная статья устарела и представляет лишь исторический интерес.

Рассматривая статью "Кастомизация формы публикации Wp-Recall" можно заметить, что о возможности добавления произвольных полей в форму публикации произвольного типа записи там не говорится, хотя функционал произвольных полей Wp-Recall достаточно удобен и хотелось бы его использовать при публикации не только для записей типа "post". Такая возможность есть.

Для добавления произвольных полей в форму публикации произвольного типа записей необходимо решить всего одну задачу - Создать страницу создания и редактирования произвольных полей для нужного типа записи в административной части.

Для создания такой страницы необходимо добавить в код дополнения или в файл функций шаблона такой код:

add_action('admin_menu', 'add_edit_page_custom_fields',30);
function add_edit_page_custom_fields(){
	add_submenu_page( 'manage-wprecall', 'Произвольные поля', 'Произвольные поля', 'manage_options', 'manage-fields-my-post-type', 'page_fields_my_custom_type');
}

function page_fields_my_custom_type(){

        //подключаем скрипт для сортировки созданных полей
        rcl_sortable_scripts();

	//подключаем нужный функционал
        include_once RCL_PATH.'functions/class-rcl-editfields.php';

        //указываем, что работать будем с произвольными полями для
        //типа записи 'post_type'
        $f_edit = new Rcl_EditFields('post_type');
	
        //код необходим для сохранения данных полей при редактировании
	if($f_edit->verify()) $fields = $f_edit->update_fields();
	
	$fields = '<h2>Произвольные поля для нашего типа записи</h2>';
                
        $fields .= $f_edit->edit_form();
        
	echo $fields;
}

В итоге, среди настроек плагина Wp-Recall мы получим новую страницу "Произвольные поля", где будем наблюдать примерно такую картину

Снимок экрана от 2015-02-11 15:29:52

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

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

Чтобы добавить в произвольное поле настройку необходимо в функцию $f_edit->edit_form(); передать массив с необходимыми данными, в нашем случае, код будет выглядеть так:

$fields .= $f_edit->edit_form(array(
            $f_edit->option('select',array(
                'name'=>'requared',
                'notice'=>'обязательное поле',
                'value'=>array('Нет','Да')
            ))
        ));

Данный массив добавит возможность указывать наши поля обязательными для заполнения при выводе в форме публикации.

Снимок экрана от 2015-02-11 16:02:46

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

$f_edit = new Rcl_EditFields('post_type',array('custom-slug'=>1));

Тогда появиться возможность указывать произвольное значение metakey для создаваемого поля

Снимок экрана от 2015-02-11 15:58:27

Осталось только вывести созданные произвольные поля и данные в них на странице редактирования произвольного типа записи в административной части, подставляем вместо post_type свой тип записи:

add_action('admin_init', 'add_admin_fields_post_type_rcl', 1);
function add_admin_fields_post_type_rcl() {
    add_meta_box( 'custom_fields_editor_post', 'Произвольные поля post_type', 'custom_fields_list_posteditor_rcl', 'post_type', 'normal', 'high'  );
}

Как можно убедиться, создание произвольных полей для своего типа записи, используя функционал плагина Wp-Recall достаточно прост и удобен.

Важно помнить, что если мы создаем произвольные поля для определенного типа записи, то именно для этого типа записи мы должны создавать и форму публикации, где созданные произвольные поля и будут предлагаться для заполнения.

30

Автор публикации

не в сети 6 минут

Андрей CS

12K
занят
Комментарии: 2729Публикации: 481Регистрация: 30-11--0001Продаж/Покупок: 0/0