Je cherche à supprimer le lien et l'icône du widget de flux RSS. Y a-t-il un moyen de le faire? Évidemment, je ne veux pas modifier les fichiers de base.
La sortie souhaitée est donc:
<h3 class="widget-title">RSS Title</h3>
Au lieu de la valeur par défaut:
<h3 class="widget-title">
<a href="http://www.example.com/url/feed/" class="rsswidget">
<img height="14" width="14" alt="RSS" src="http://example.com/wp-includes/images/rss.png" style="border:0" class="rss-widget-icon"></a> <a href="http://www.example.com/" class="rsswidget">RSS Title</a>
Je sais qu'il existe un filtre widget_title, mais je ne parviens pas à le faire fonctionner.
Des exemples de code seraient appréciés.
Plus de détails
Donc, il y a ce code dans /wp-includes/widgets/class-wp-widget-rss.php
/** This filter is documented in wp-includes/widgets/class-wp-widget-pages.php */
$title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
$url = strip_tags( $url );
$icon = includes_url( 'images/rss.png' );
if ( $title )
$title = '<a class="rsswidget" href="' . esc_url( $url ) . '"><img class="rss-widget-icon" style="border:0" width="14" height="14" src="' . esc_url( $icon ) . '" alt="RSS" /></a> <a class="rsswidget" href="' . esc_url( $link ) . '">'. esc_html( $title ) . '</a>';
echo $args['before_widget'];
if ( $title ) {
echo $args['before_title'] . $title . $args['after_title'];
}
wp_widget_rss_output( $rss, $instance );
echo $args['after_widget'];
if ( ! is_wp_error($rss) )
$rss->__destruct();
unset($rss);
Et je vois qu’il existe un filtre, mais je ne sais pas comment l’utiliser pour supprimer le lien et l’icône.
Vous essayez de modifier un widget intégré. Malheureusement pour vous, il n’existe pas de solution simple pour obtenir les résultats souhaités. Comme vous l'avez déjà compris, il n'y a pas de crochet de filtre pour modifier la sortie du titre entier.
Créez votre propre widget en étendant WP_Widget_RSS
où vous écrasez la méthode par les parents widget
avec votre méthode désignée. Puis remplacez la version intégrée par la vôtre.
Un peu d’aide pour vous aider à démarrer:
class WP_Widget_RSS_Custom extend WP_Widget_RSS {
public function widget($args, $instance) {
// Copy parent function and modify to your needs…
}
}
add_action('widgets_init', 'widget_WP_Widget_RSS_Custom_init');
function widget_WP_Widget_RSS_Custom_init() {
unregister_widget('WP_Widget_RSS');
register_widget('WP_Widget_RSS_Custom');
}
Créez une solution basée sur JS, qui modifie le widget une fois que DOM est prêt.