Дополнительные поля для разделов сайта на WordPress. Начальный вариант взят с сайта githab. Привожу его здесь немного модифицированным. На всякий случай, если когда-нибудь понадобится.
Источник:
gist.github.com
Код будет выводить два дополнительных поля, значения которых можно выводить либо в мета тегах описания категорий либо на страницах разделов. Как вариант, сюда же можно поставить ссылку на изображение категории, чтобы выводить картинки для разделов без плагинов, а код немного доработать.
Код надо вставлять в файл functions.php или сделать отдельным плагином.
Добавляет вызов функции при инициализации административного раздела
----------------------------------------------------------------------- */
add_action('admin_init', 'category_custom_fields', 1);
// функция расширения функционала административного раздела
function category_custom_fields()
{
// добавления действия после отображения формы ввода параметров категории
add_action('edit_category_form_fields', 'category_custom_fields_form');
// добавления действия при сохранении формы ввода параметров категории
add_action('edited_category', 'category_custom_fields_save');
}
function category_custom_fields_form($tag)
{
$t_id = $tag->term_id;
$cat_meta = get_option("category_$t_id");
?>
<tr class="form-field">
<th scope="row" valign="top"><label for="extra1"><?php _e('Доп. 1'); ?></label></th>
<td>
<textarea rows="5" name="Cat_meta[cat_descr2]" id="Cat_meta[cat_descr2]">
<?php echo $cat_meta['cat_descr2'] ? $cat_meta['cat_descr2'] : ''; ?></textarea>
<br /><span class="description"><?php _e('Дополнительное описание категории 1'); ?></span>
</td>
</tr>
<tr class="form-field">
<th scope="row" valign="top"><label for="extra1"><?php _e('Доп. 2'); ?></label></th>
<td>
<textarea rows="5" name="Cat_meta[cat_descr3]" id="Cat_meta[cat_descr3]">
<?php echo $cat_meta['cat_descr3'] ? $cat_meta['cat_descr3'] : ''; ?></textarea>
<br /><span class="description"><?php _e('Дополнительное описание категории 2'); ?></span>
</td>
</tr>
<?php
}
function category_custom_fields_save($term_id)
{
if (isset($_POST['Cat_meta'])) {
$t_id = $term_id;
$cat_meta = get_option("category_$t_id");
$cat_keys = array_keys($_POST['Cat_meta']);
foreach ($cat_keys as $key) {
if (isset($_POST['Cat_meta'][$key])) {
$cat_meta[$key] = $_POST['Cat_meta'][$key];
}
}
//save the option array
update_option("category_$t_id", $cat_meta);
}
}