这个after_title
不经过任何转换。事实上,只有before_widget
是否:
http://core.trac.wordpress.org/browser/tags/3.3.1/wp-includes/widgets.php#L876
但是,再低一点你就能看到
$params = apply_filters( \'dynamic_sidebar_params\', $params );
有一个过滤器,你可以钩做自己的过滤。
add_filter( \'dynamic_sidebar_params\', \'wpse_45418_change_after_title\' );
function wpse_45418_change_after_title( $params ) {
$id = $params[0][\'widget_id\'];
if ( $id != \'mywidget\' ) return $params;
global $wp_registered_widgets;
foreach ( (array) $wp_registered_widgets[$id][\'classname\'] as $cn ) {
if ( is_string($cn) )
$classname_ .= \'_\' . $cn;
elseif ( is_object($cn) )
$classname_ .= \'_\' . get_class($cn);
}
$params[0][\'after_title\'] = sprintf($params[0][\'after_title\'], $id, $classname );
return $params;
}
这就是为什么没有呈现ID的一般答案。在本例中,要在
after_title
键,则需要执行类似的操作,但要提供唯一的ID,如下所示:
add_filter( \'dynamic_sidebar_params\', \'wpse_45418_change_after_title\' );
function wpse_45418_change_after_title( $params ) {
$id = $params[0][\'widget_id\'];
if ( $id != \'mywidget\' ) return $params;
$url = esc_url( \'http://some-url-you-need.com\' );
$uidcollapse = $id.\'-unique-id\';
$uidboxdiv = $id.\'-another-unique-id\';
// <a class="dropdown" style="float: right;" href="%1$s" data-toggle="collapse"><b class="toggleicon"></b></a></div><div id="#%2$s" class="collapse in"><div id="#%3$s" class="boxdiv">
$params[0][\'after_title\'] = sprintf($params[0][\'after_title\'], $url, $classname, $uidcollapes, $uidboxdiv );
return $params;
}