将类添加到类别小部件

时间:2012-01-21 作者:ajames

我有一些在自定义侧栏中使用的默认小部件,我想在函数中编辑其输出。php文件。

目前,categories小部件和blogrolls正在生成一个无序的链接列表,如下所示:

<ul>
<li class="cat-item cat-item-1">
<a href="http://localhost:8888/?cat=1">Uncategorized</a>
</li>
</ul>
我想通过某种方式将一个类名传递到无序列表中,传递给以下内容:

<ul class="test">...</ul>
我正在学习如何在函数中使用过滤器。php文件,我想这就是我需要做的,但我真的不知道怎么做。。这可能吗?我怎么知道怎么做这样的事?

--布鲁诺

3 个回复
SO网友:Jared

下面是我制作的一个小jQuery片段,它应该可以完成您想要它做的事情(这只适用于category小部件):

// JavaScript Document
$j = jQuery.noConflict();
$j(document).ready(function(){
    $j(\'li.cat-item-1\').parent().addClass(\'test\');
});
如果要对所有小部件执行此操作,那么这取决于小部件的父元素。假设有一个<div class="widget"></div> 包装每个小部件。您可以这样做,将类添加到直接子级<ul>\'所有窗口小部件的:

// JavaScript Document
$j = jQuery.noConflict();
$j(document).ready(function(){
    $j(\'.widget > ul\').addClass(\'test\');
});
然而,对于PHP,情况就不同了。

SO网友:Hameedullah Khan

默认类别小部件没有任何要添加类的过滤器<ul>, 因此,您可以使用js来实现此结果,请在函数中添加以下代码。php

add_action(\'wp_footer\', \'wpse39693_add_custom_js\', 99);
function wpse39693_add_custom_js() {
?>
jQuery(document).ready(function($) {
    jQuery(\'.widget_categories > ul\').addClass(\'test\');
});
<?php
}
正如您所说,您不想为此使用js,那么我假设您想添加类,以便可以从css向ul元素添加一些样式,在这种情况下,您可以从css中以ul元素为目标,如下所示:

.widget_categories > ul {
    list-style: none;
}
另一个选项是,您可以创建自定义类别小部件,您可以从默认类别小部件扩展并修改输出。

SO网友:user1503606

找不到php解决方案加载时js解决方案闪烁只需自己为小部件添加css从引导程序中获取它并添加到css文件。

/* widgets */
.widget ul {
  padding-left: 0;
  margin-bottom: 20px;
}
.widget ul li {
  position: relative;
  display: block;
  padding: 10px 15px;
  margin-bottom: -1px;
  background-color: #fff;
  border: 1px solid #ddd;
}
.widget ul li:first-child {
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
}
.widget ul li:last-child {
  margin-bottom: 0;
  border-bottom-right-radius: 4px;
  border-bottom-left-radius: 4px;
}

结束