Замена вывода кода сайта-бара через функцию темы
Приветствую.
Есть вот такая проблема. В сайтбаре по традиции код выводится обернутый в тег li.
Какой код прописать в функции темы, чтобы тег li заменить на тег div.
В самом движке это делать не вариант, потому что при обновлении движка правка этого тега слетит.
Файл движка: widgets.php в папке wp-includes. Строка 248:
'before_widget' => '<li id="%1$s" class="widget %2$s">', 'after_widget' => "</li>\n",
Привет, Сергей.
Первый способ. Можно зарегистрировать новый сайдбар и указать ему эти самые before_widget и after_widget. К примеру в теме
Twenty Sixteenэто сделано так:В итоге вёрстка сайдбара такая:
Второй способ. Есть хук register_sidebar, с помощью которого можно "подменить" данные из массива на свои собственные, к примеру:
add_action( 'register_sidebar', function ( $sidebar ) { global $wp_registered_sidebars; $sidebar['before_widget'] = '<div id="%1$s" class="widget %2$s">'; $sidebar['after_widget'] = '</div>'; $wp_registered_sidebars[$sidebar['id']] = $sidebar; } );Вместо
section, определенных в теме, я подменил наdivи получилось уже вот так:Большое спасибо! А вот еще такой вопрос: если нужно зарегистрировать три сайтабара или четыре?
Через register_sidebars можно сразу несколько. Это похожая функция, но вместо 1 может зарегистрировать сразу несколько панелей.
Отлично! Благодарю.