получить идентификатор или порядок первого виджета на боковой панели WordPress - PullRequest
1 голос
/ 16 декабря 2010

Я использую WordPress. В бэкэнде моего сайта есть одна боковая панель. На этой боковой панели есть n виджетов. Я хотел бы добавить класс CSS только в первом виджете, а в остальных нет.

Как я могу справиться с этим?

Пожалуйста, помогите!

Ответы [ 3 ]

1 голос
/ 16 декабря 2010

Вы должны создать динамическую боковую панель, которая добавит нумерацию к классам или идентификаторам виджетов.Вот хороший пост об этом: http://wordpress.org/support/topic/how-to-first-and-last-css-classes-for-sidebar-widgets

0 голосов
/ 19 декабря 2010

У меня не было большого опыта с перехватом виджетов в 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).

РЕДАКТИРОВАТЬ: Принятый ответ, вероятно, фактически решает вопрос,так что следуйте этому совету ..

Надеюсь, это поможет ...

0 голосов
/ 16 декабря 2010

что именно вы хотите изменить?вы можете поместить html в виджеты, чтобы вы могли копировать содержимое вашего виджета, если это что-то простое - вы также можете поместить ID и классы в html (и отредактировать css в файле style.css вашей темы), или вы можетедаже использовать css напрямую с тегом style="".если это не что-то простое, то у него уже есть идентификаторы и / или классы - поэтому вы должны получить эти идентификаторы и классы с помощью firebug , а затем отредактировать стиль в style.css.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...