Я хочу создать пользовательскую область виджетов и сохранить ее содержимое в нижнем колонтитуле.
Я делаю это как часть плагина, который создаю. Итак, в основном файле плагина, я попробовал с:
if ( function_exists('register_sidebar') )
register_sidebar(array(
'name' => 'Name of Widgetized Area',
'before_widget' => '<div class = "widgetizedArea">',
'after_widget' => '</div>',
'before_title' => '<h3>',
'after_title' => '</h3>',
)
);
но он не показывает область виджета в WordPress. Внешний вид -> Виджеты.
Это первая проблема … Другая проблема: когда я выясняю, как добавить область виджета, как реализовать, чтобы виджет, хранящийся в этой пользовательской области виджета, помещался в нижний колонтитул? Я думаю добавить это в файл footer.php темы, которую я использую:
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar("Name of
Widgetized Area") ) : ?>
<?php endif;?>
Я не уверен, что это правильно … и другая проблема: я добавляю это непосредственно в footer.php темы, которую я использую, так что это означает, что плагин не будет работать, если установлена другая тема и активируется. Должен ли я написать функцию, чтобы найти файл footer.php, а затем написать это в нем, или я должен сделать что-то еще. А что если в теме нет файла footer.php?
Есть два способа добавить виджеты:
1) Использование Виджеты на странице плагин
2) Вы можете добавить виджет, используя код.
1) Вы можете напрямую установить Виджеты на странице плагин. Там вы можете легко создать плагин. Я буду отображаться в виджетах, и он сгенерирует шорткод, который вы можете разместить в footer.php или любом другом файле, где вы хотите отобразить свой виджет
2) Вы можете создать свою область виджетов, используя следующий код:
Добавьте этот код в вашу тему funtion.php
function arphabet_widgets_init() {
register_sidebar( array(
'name' => 'Home right sidebar',
'id' => 'home_right_1',
'before_widget' => '<div>',
'after_widget' => '</div>',
'before_title' => '<h2 class="rounded">',
'after_title' => '</h2>',
) );
}
add_action( 'widgets_init', 'arphabet_widgets_init' );
а затем добавить этот код в свой footer.php
<?php if ( is_active_sidebar( 'home_right_1' ) ) : ?>
<div id="primary-sidebar" class="primary-sidebar widget-area" role="complementary">
<?php dynamic_sidebar( 'home_right_1' ); ?>
</div><!-- #primary-sidebar -->
<?php endif; ?>
Это функция, которая выводит виджет:
<?php dynamic_sidebar( 'home_right_1' ); ?>
Надеюсь, что это поможет вам..
Других решений пока нет …