为什么您认为该代码会起作用?没有名为的挂钩wp_widget_tag_cloud
我能找到的no hook specifically meant for altering that attribute. 但你可以通过topic_count_text_callback
到wp_tag_cloud
, 这是什么generates the tag cloud for the widget, 还有一个钩子,允许您更改小部件的标记云参数。
function tag_count_cb($count) {
return \'test\';
}
function remove_tag_title_attributes($args) {
$args[\'topic_count_text_callback\'] = \'tag_count_cb\';
var_dump($args);
return $args;
}
add_filter(\'widget_tag_cloud_args\', \'remove_tag_title_attributes\');
但是你没有太多的工作要做——只有标记计数。要获得更多的工作机会,您需要做一些更像您尝试的事情,但使用不同的正则表达式和不同的挂钩。
function tag_cloud_attribute_rebuild($match) {
$a = "<a href=\'%s\' class=\'%s\' title=\'%s\' style=\'%s\'>%s</a>";
return sprintf(
$a,
$match[1],
$match[2],
$match[3],
$match[4],
$match[5]
);
}
function remove_tag_title_attributes($output) {
$pattern = "|<a href=\'([^\']*?)\' class=\'([^\']*?)\' title=\'([^\']*?)\' style=\'([^\']*?)\'>([^<]*)</a>|";
$output = preg_replace_callback($pattern,\'tag_cloud_attribute_rebuild\',$output);
return $output;
}
add_filter(\'wp_tag_cloud\', \'remove_tag_title_attributes\');
标题是
$match[3]
. 另一个信息是为您提供一些可以使用的信息。改变
$match[3]
在
sprintf
. 如果这还不够,您必须提取
ID
从…起
$match[2]
或在中使用标记名
$match[5]
并运行查询,但这对服务器来说将是非常耗费人力的。
这就是使用核心小部件的方式。另一种选择是以不同的名称重新构建小部件——也就是说,使用核心小部件作为模型来创建自己的小部件——并包括所需功能的更改版本。