个性化阅读
专注于IT技术分析

获取WordPress侧边栏中的第一个小部件的ID或顺序

我正在使用WordPress。在我网站的后端, 有一个侧边栏。在此侧栏上, 有n个小部件。我想在第一个小部件中添加一个CSS类, 而在其余部分中不添加。

我该如何处理?

请帮忙!


#1


你应该制作动态侧边栏, 以将编号添加到小部件的类或ID。这是一篇不错的文章:http://wordpress.org/support/topic/how-to-first-and-last-css-classes-for-sidebar-widgets


#2


你到底要更改什么?你可以将html放入小部件中, 这样就可以简单地复制小部件的内容-你也可以将ID-s和类放入html中(并编辑主题的style.css文件中的css), 或者可以甚至直接将CSS与style =””标签选项一起使用。如果不是那么简单, 则说明它已经具有ID和/或类-因此你应该使用Firebug获取这些ID和类, 然后在style.css中编辑样式。


#3


我对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';
    }
}
?>

你只需要用有效的补充工具栏ID(即注册补充工具栏时设置的ID)替换your-sidebar-id-here(代码的第3行)。

为了方便起见, 可以将代码放在主题的functions.php中。如果你在放置代码时遇到麻烦, 只需确保你没有嵌套PHP标签即可。(例如<?php <?php)。

编辑:接受的答案可能实际上解决了这个问题, 因此请遵循该建议。

希望有帮助…

赞(0)
未经允许不得转载:srcmini » 获取WordPress侧边栏中的第一个小部件的ID或顺序

评论 抢沙发

评论前必须登录!