В WordPress сайдбары управляются с помощью виджетов, но по умолчанию они не предоставляют возможность добавлять произвольные поля. Однако, есть несколько способов реализации этой возможности.
1. Создание пользовательского виджета:
- Создайте новый класс для виджета, наследующийся от класса WP_Widget.
- Внутри класса определите конструктор, в котором указывайте информацию о виджете (название, описание и другие параметры).
- Переопределите методы вывода виджета, такие как widget
, form
и update
для определения содержимого и настроек виджета.
- В методе form
выведите поля формы для ввода произвольных значений.
- В методе widget
получите значения полей и выведите их на странице.
- Зарегистрируйте виджет, вызвав функцию register_widget
.
2. Использование плагина Advanced Custom Fields:
- Установите и активируйте плагин Advanced Custom Fields.
- Создайте новое поле типа "Сайдбар" и настройте его по своему усмотрению.
- В файле sidebar.php
или в файле шаблона, где должен быть отображен ваш сайдбар, добавьте код вызова своего поля:
$sidebar = get_field('sidebar_field_name'); if (!empty($sidebar)) { echo $sidebar; }
3. Использование пользовательского кода:
- В файле functions.php
вашей темы добавьте следующий код:
function custom_sidebar_field() { $sidebar = get_option('custom_sidebar_field'); if (!empty($sidebar)) { echo $sidebar; } } function custom_sidebar_field_admin() { $sidebar = !empty($_POST['custom_sidebar_field']) ? $_POST['custom_sidebar_field'] : ''; update_option('custom_sidebar_field', $sidebar); } function custom_sidebar_field_admin_form() { $sidebar = get_option('custom_sidebar_field'); ?> <label for="custom_sidebar_field">Custom Sidebar Field:</label> <input type="text" id="custom_sidebar_field" name="custom_sidebar_field" value="<?php echo $sidebar; ?>"> <?php } add_action('widgets_init', function() { register_sidebar(array( 'name' => 'Custom Sidebar', 'id' => 'custom_sidebar', 'before_widget' => '<div id="%1$s" class="widget %2$s">', 'after_widget' => '</div>', 'before_title' => '<h2 class="widget-title">', 'after_title' => '</h2>' )); }); add_action('admin_menu', function() { add_options_page('Custom Sidebar Field', 'Custom Sidebar Field', 'manage_options', 'custom-sidebar-field', 'custom_sidebar_field_admin_page'); }); function custom_sidebar_field_admin_page() { ?> <div class="wrap"> <h1>Custom Sidebar Field</h1> <form method="post" action="options.php"> <?php settings_fields('custom_sidebar_field'); do_settings_sections('custom-sidebar-field'); submit_button(); ?> </form> </div> <?php } add_action('admin_init', function() { register_setting('custom_sidebar_field', 'custom_sidebar_field'); add_settings_section('custom_sidebar_field_section', 'Custom Sidebar Field Settings', '', 'custom-sidebar-field'); add_settings_field('custom_sidebar_field_setting', 'Custom Sidebar Field', 'custom_sidebar_field_admin_form', 'custom-sidebar-field', 'custom_sidebar_field_section'); });
- Теперь вы можете использовать новый сайдбар Custom Sidebar
в админ-панели WordPress и в вашей теме с помощью функции dynamic_sidebar
:
if (is_active_sidebar('custom_sidebar')) { dynamic_sidebar('custom_sidebar'); }
Независимо от выбранного способа, вы сможете добавить произвольное поле в сайдбар WordPress. Обратите внимание, что для реализации данной функциональности понадобятся знания PHP и WordPress API.