Лучший способ сделать это без проблем совместимости - установить Выходные фильтры виджетов ( Github Repo ). Этот плагин представляет новый хук 'widget_output', способный нацеливаться на любой виджет. После установки вы добавляете это к функциям. php:
function filter_widgets( $widget_output, $widget_type, $widget_id, $sidebar_id ) {
if ( 'block_widget-2' == $widget_id ) {
$widget_output = preg_replace( '/<a([^>]+)>/i', '<a\1 rel="nofollow">', $widget_output );
}
return $widget_output;
}
add_filter( 'widget_output', 'filter_widgets', 10, 4 );
Чтобы избежать путаницы между любым возможным визуальным идентификатором, показывающим атрибут id, и зарегистрированным идентификатором виджета. Мы можем использовать следующее действие, которое будет отображать идентификатор виджета, который нам нужно использовать в нашем фильтре widget_output. После добавления этого кода в функции. php
add_action('in_widget_form', 'spice_get_widget_id');
function spice_get_widget_id($widget_instance)
{
// Check if the widget is already saved or not.
if ($widget_instance->number=="__i__"){
echo "<p><strong>Widget ID is</strong>: Pls save the widget first!</p>" ;
} else {
echo "<p><strong>Widget ID is: </strong>" .$widget_instance->id. "</p>";
}
}
Мы сможем увидеть это в меню Appearance => Widget в блоке Widget blo c, даже если мы не используем форму.