Задать вопрос

Как задать $defaults = array() для register_sidebar?

Добрый день, хочу сменить дефолтный вывод виджета, нашел в widget.php такой код:
function register_sidebar( $args = array() ) {
	global $wp_registered_sidebars;

	$i = count( $wp_registered_sidebars ) + 1;

	$id_is_empty = empty( $args['id'] );

	$defaults = array(
		/* translators: %d: Sidebar number. */
		'name'          => sprintf( __( 'Sidebar %d' ), $i ),
		'id'            => "sidebar-$i",
		'description'   => '',
		'class'         => '',
		'before_widget' => '<li id="%1$s" class="widget %2$s">',
		'after_widget'  => "</li>\n",
		'before_title'  => '<h2 class="widgettitle">',
		'after_title'   => "</h2>\n",
	);


хочу в своей теме сменить:
'before_widget' => '<li id="%1$s" class="widget %2$s">',
		'after_widget'  => "</li>\n",

на
'before_widget' => '<div id="%1$s" class="widget %2$s">',
		'after_widget'  => "</div>\n",

можно ли в functions.php это задать? или только редактрировать widget.php?
нужно именно дефалт сменить, не хочу для каждого виджета прописывать их
  • Вопрос задан
  • 84 просмотра
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
angela_merkel
@angela_merkel
Frontend developer, youtube bloger and a good girl
ни в коем случае нельзя редактировать файлы Wordpress! Попробуй сделать просто свою функцию создания виджета
Ответ написан
Комментировать
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Обертка виджетов указывается при определении сайдбара именно с помощью этой функции - register_sidebar() c помощью параметров before_widget / after_widget, и это легко переопределить:
register_sidebar( [
    'name'          => 'My Sidebar',
    'id'            => 'my-sidebar',
    'before_widget' => '<div class="my-custom-class">',
    'after_widget'  => '</div>'
] );

Default значение в самой функции менять не надо, вы не поняли как это работает. Вы либо передаете в register_sidebar() свой массив с настройками, либо если не передадите - тогда WP будет использовать $defaults
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы