Нужна помощь с remove_action () - PullRequest
       13

Нужна помощь с remove_action ()

2 голосов
/ 11 августа 2009

Я пытаюсь удалить неприглядный встроенный тег <STYLE>, который встроенный виджет «Последние комментарии» помещает в мой <HEAD>, но мне кажется, что синтаксис мне не подходит Первоначально он называет

add_action( 'wp_head', array(&$this, 'recent_comments_style') );

чтобы добавить его (в wp-includes / default-widgets.php, строка 609 ), и я пытаюсь отменить его.

Я думаю, что это должно быть примерно так:

remove_action('wp_head', 'WP_Widget_Recent_Comments::recent_comments_style');

но со всеми вариантами, которые я пробовал, я все еще не могу понять это правильно. Кто-нибудь знает, как этого добиться?

Возможно, полезно:

Ответы [ 4 ]

8 голосов
/ 13 августа 2009

Это правильный код:

add_action('wp_head', 'remove_widget_action', 1);
function remove_widget_action() {
    global $wp_widget_factory;

    remove_action( 'wp_head', array($wp_widget_factory->widgets['WP_Widget_Recent_Comments'], 'recent_comments_style') );
}

Однако, это не работает из-за этой ошибки .

1 голос
/ 11 августа 2009
remove_action('wp_head', array(&$this, 'recent_comments_style'));

Это должно работать, потому что Wordpress использует те же функции для создания уникальных идентификаторов, независимо от того, удаляете вы их или добавляете.

0 голосов
/ 11 ноября 2013

Теперь просто:

// Remove Recent Comments Default Style
add_filter( 'show_recent_comments_widget_style', '__return_false' ); // Temp hack #14876
0 голосов
/ 28 марта 2010
// remove old recentcomments inline style

add_action( 'widgets_init', 'my_remove_recent_comments_style' );
function my_remove_recent_comments_style() {
    global $wp_widget_factory;
    remove_action( 'wp_head', array( $wp_widget_factory->widgets['WP_Widget_Recent_Comments'], 'recent_comments_style'  ) );
}

протестирован. работает

...