在wordpress中为每个小部件添加自定义类,你的方法是什么?

时间:2009-12-26 06:30:26

标签: php css wordpress

我正在为wordpress创建一个主题,我在我的小部件上的标题上实现图像替换时遇到问题。

如何添加自定义类或ID来包装我的小部件?

例如

HTML:

<div id="sidebar">
  <div id="customWidgetId">
     <h2>This Title will be replace by an Image</h2>
     <p>Wordpress 'Text' Widget content here</p>
  </div> 

  <div id="anotherCustomWidgetId">
     <h2>This Title will be replace by an Image</h2>
     <p>Wordpress 'Text' Widget content here</p>
  </div> 

  <div class="customClass">
     <h2>This Title will be replace by an Image</h2>
     <p>Wordpress 'Text' Widget content here</p>
  </div> 

</div>

CSS:

#anotherCustomWidgetId h2 {
 text-indent: -1000em;
 background: url of my image;
 width: ;
 height: ;
}

我需要控制我的小部件的ID和类。所以我可以为小部件创建自定义css图像替换。

如果您在我的鞋子中如何在wordpress中实现它?。

谢谢!

3 个答案:

答案 0 :(得分:8)

如果您只是想为每个小部件添加一个类(我已经为clearfix修复完成了这个),那么在register_sidebar中添加另一行,就像这样......

     register_sidebar(array(
        'id' => 'sidebar1',
        'name' => 'Sidebar (Main)',
        'description' => 'Primary sidebar',
        'before_widget' => '<div id="%1$s" class="widget %2$s">',
        'after_widget' => '</div>',
        'before_title' => '<h3 class="widgettitle">',
        'after_title' => '</h3>',
        'class' => 'clearfix'
    ));

这为我的所有小部件添加了一类'clearfix'。

答案 1 :(得分:4)

如果您不知道窗口小部件类是什么(并且无法更改它们或者不想更改它们),我只会使用nth:child定位带有CSS3的侧边栏中的h2元素,并为不支持的浏览器提供支持用javascript实现它。

您可以修改小部件(在插件文件夹中找到)以添加特定的类或 如果您不希望动态侧边栏使用the_widget()模板标记调用每个小部件。小部件模板标记接受参数以允许您在小部件标题之前和之后放置html以及可用于css挂钩的小部件本身

该代码已在User bono contribution

进行了更新

答案 2 :(得分:1)

这对我有用 - 想为小部件内容提供特殊课程 - class =&#34; widget-content&#34; - 休息可以保持原样:)

register_sidebar( array(
    'name' => __( 'Blog Sidebar'),
    'id' => 'sidebar-blog',
    'before_widget' => '<aside id="%1$s" class="widget %2$s">',
    'after_widget' => "</div></aside>",
    'before_title' => '',
    'after_title' => '',
) );

function add_widget_content_wrapper($content) {
    $new_content = '<div class="widget-title">';
    $new_content.= $content . '</div><div class="widget-content">';
    return $new_content;
}   
add_filter('widget_title', 'add_widget_content_wrapper');