Чтобы добавить поля для ввода, такие как "название" и "описание", при создании записи в WordPress, вы можете использовать функционал метаполей (custom fields) или пользовательские поля (custom meta boxes). Вот пошаговое объяснение, как это сделать:
### Шаг 1: Создание пользовательских полей
#### 1. Использование плагина (рекомендуется для начинающих)
Самый простой способ добавить пользовательские поля — использовать плагин. Один из популярных плагинов для этого — **Advanced Custom Fields (ACF)**.
- Установите и активируйте плагин ACF.
- Перейдите в «Custom Fields» и нажмите «Add New».
- Создайте группу полей. Добавьте нужные поля (например, "название" и "описание").
- Настройте правила отображения (например, показывать на страницах записи).
- Сохраните изменения.
#### 2. Добавление пользовательских полей без плагина
Если вы хотите сделать это без плагина, вам нужно использовать код:
1. **Добавьте метабокс в админке:**
В файле `functions.php` вашей темы добавьте следующий код:
```php
function my_custom_meta_box() {
add_meta_box(
'my_meta_box', // ID метабокса
'Дополнительная информация', // Заголовок метабокса
'my_meta_box_callback', // Функция обратного вызова
'post' // Тип записи (в данном случае - пост)
);
}
add_action('add_meta_boxes', 'my_custom_meta_box');
function my_meta_box_callback($post) {
wp_nonce_field('my_meta_box_nonce', 'meta_box_nonce');
$title = get_post_meta($post->ID, '_my_meta_title', true);
$description = get_post_meta($post->ID, '_my_meta_description', true);
echo '<label for="my_meta_title">Название</label>';
echo '<input type="text" id="my_meta_title" name="my_meta_title" value="' . esc_attr($title) . '" size="25" />';
echo '<label for="my_meta_description">Описание</label>';
echo '<textarea id="my_meta_description" name="my_meta_description">' . esc_textarea($description) . '</textarea>';
}
```
2. **Сохраните значения метаполей:**
Также добавьте следующий код в `functions.php`:
```php
function my_save_meta_box_data($post_id) {
if (!isset($_POST['meta_box_nonce']) || !wp_verify_nonce($_POST['meta_box_nonce'], 'my_meta_box_nonce')) {
return;
}
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return;
}
if (!current_user_can('edit_post', $post_id)) {
return;
}
if (isset($_POST['my_meta_title'])) {
update_post_meta($post_id, '_my_meta_title', sanitize_text_field($_POST['my_meta_title']));
}
if (isset($_POST['my_meta_description'])) {
update_post_meta($post_id, '_my_meta_description', sanitize_textarea_field($_POST['my_meta_description']));
}
}
add_action('save_post', 'my_save_meta_box_data');
```
### Шаг 2: Вывод пользовательских полей в шаблоне
Чтобы вывести значения этих полей в вашем шаблоне, например, в `single.php`, добавьте следующий код:
```php
$title = get_post_meta(get_the_ID(), '_my_meta_title', true);
$description = get_post_meta(get_the_ID(), '_my_meta_description', true);
if ($title) {
echo '<h1>' . esc_html($title) . '</h1>';
}
if ($description) {
echo '<p>' . esc_html($description) . '</p>';
}
```
### Заключение
Теперь ваши пользовательские поля "название" и "описание" будут отображаться в редакторе записей, и данные из этих полей смогут автоматически выводиться в шаблоне вашего сайта. Если вы используете плагин ACF, процесс будет более простым, но и самостоятельно настроенный подход также дает отличные результаты.