实际上,并不是小部件本身负责广泛的结构。已确定when a sidebar is registered. 例如,小部件实例本身只存储标题。它周围的html(在您当前的情况下<h2>...</h2>
, 您要更改为<a><h2>...</h2></a>
) 在侧栏注册阶段设置。
现在,您的问题是您只想为一种特定类型的小部件更改此结构。幸运的是,您可以在渲染阶段执行此操作。如果你看看source of the rendering function, 您可以看到几个可以使用的过滤器。您正在寻找此项:
$params = apply_filters( \'dynamic_sidebar_params\', $params );
您可以这样使用它:
function wpse337107_add_link_to_widget_title ($params) {
if ($params[widget_name] == \'media_image\') { // check needed if this is the correct widget name
$params[before_title] = \'<a href="https://www.example.com><h2>"\';
$params[after_title] = \'</h2></a>\';
}
return $params;
}
add_filter (\'dynamic_sidebar_params\',\'wpse337107_add_link_to_widget_title\',10,1);
注意:代码没有经过测试,所以可能有bug,但我希望您能理解这一点。