Я использую Вордпресс. В бэкэнде моего сайта есть одна боковая панель. На этой боковой панели есть n виджетов. Я хотел бы добавить класс CSS только в первый виджет, а не в остальные.
Как я могу справиться с этим?
Пожалуйста помоги!
Я использую Вордпресс. В бэкэнде моего сайта есть одна боковая панель. На этой боковой панели есть n виджетов. Я хотел бы добавить класс CSS только в первый виджет, а не в остальные.
Как я могу справиться с этим?
Пожалуйста помоги!
Вы должны сделать динамическую боковую панель, которая будет добавлять нумерацию к классам или идентификаторам виджетов. Вот хороший пост об этом: http://wordpress.org/support/topic/how-to-first-and-last-css-classes-for-sidebar-widgets
что именно вы хотите изменить? вы можете поместить html в виджеты, чтобы вы могли копировать содержимое вашего виджета, если это что-то простое - вы также можете поместить ID-ы и классы в html (и отредактировать css в файле style.css вашей темы), или вы можете даже используйте css напрямую с опцией тега style=""
. если это не что-то простое, то у него уже есть идентификаторы и/или классы, поэтому вы должны получить эти идентификаторы и классы с помощью firebug, а затем отредактируйте стиль в style.css.
У меня не было большого опыта работы с хуками виджетов в WordPress, но я считаю, что это должно охватывать то, что вы просите.
<?php
if( !is_admin() ) {
$sidebar_id = 'your-sidebar-id-here';
$sidebars_array = wp_get_sidebars_widgets();
if( isset( $sidebars_array[$sidebar_id] ) && ( !empty( $sidebars_array[$sidebar_id] ) ) ) {
$first_widget = current( $sidebars_array[$sidebar_id] );
add_action( 'widgets_init', 'so4461485_widget_custom', 10000 );
}
}
function so4461485_widget_custom() {
global $wp_registered_widgets, $first_widget;
if( empty( $wp_registered_widgets ) )
return;
foreach( $wp_registered_widgets as $widget_id => $widget_data_array ) {
if( $widget_id != $first_widget )
continue;
if( isset( $widget_data_array['classname'] ) )
$wp_registered_widgets[$widget_id]['classname'] .= ' first_widget';
}
}
?>
Вам просто нужно заменить your-sidebar-id-here
(строка 3 кода) действительным идентификатором боковой панели (то есть идентификатором, установленным при регистрации боковой панели).
Код можно поместить в файл functions.php темы для удобства. Если у вас возникли проблемы с размещением кода, просто убедитесь, что вы не вкладываете теги PHP (например, <?php <?php
).
EDIT: Принятый ответ, вероятно, фактически касается вопроса, поэтому следуйте этому совету.
Надеюсь, это поможет...