WordPress : Comment modifier le contenu du Widget « Meta » ?
J’ai eu besoin de cette bidouille à l’heure du WordPress 2.3.
Aujourd’hui je m’épargnerais taper le code du widget méta d’origine comme je le proposais dans la précédente version de ce billet.,
En effet, si j’en avais besoin, j’opterais pour une de ces 3 solutions pour en créer un :
- Avec le widget texte/html par défaut
- Avec une extension comme WordPress Default Widget Extension
- Avec une extension comme Login-Logout si je souhaite simplement garder un widget de connexion.
Ce n’est que mon avis mais ça se discute…
Bonjour,
Peut être qu’il serait bien d’informer le lecteur que c’est un hack et qu’il doit le refaire après chaque mise à jour, si on veut juste connexion et déconnexion, voilà le bon code pour functions.php
Déjà désactiver widget_meta
//* Remove the default WordPress WP_Widget_Meta
function remove_meta_widget() {
unregister_widget('WP_Widget_Meta');
register_widget('Custom_WP_Widget_Meta');
}
add_action( 'widgets_init', 'remove_meta_widget' );
puis le code juste pour avoir connexion et déconnexion
/**
* Custom Meta widget class
*
* Displays RSS feed links, etc.
*
* @since 2.8.0
*/
class Custom_WP_Widget_Meta extends WP_Widget {
public function __construct() {
$widget_ops = array('classname' => 'widget_meta', 'description' => __( "RSS feed links.") );
parent::__construct('meta', __('Meta'), $widget_ops);
}
public function widget( $args, $instance ) {
/** This filter is documented in wp-includes/default-widgets.php */
$title = apply_filters( 'widget_title', empty($instance['title']) ? __( 'Meta' ) : $instance['title'], $instance, $this->id_base );
echo $args['before_widget'];
if ( $title ) {
echo $args['before_title'] . $title . $args['after_title'];
}
?>
'' ) );
$title = strip_tags($instance['title']);
?>
<label for="get_field_id('title'); ?>"> <input class="widefat" id="get_field_id('title'); ?>" name="get_field_name('title'); ?>" type="text" value="" />
<?php
}
}
// Register Custom_WP_Widget_Meta widget
add_action( 'widgets_init', function() {
register_widget( 'Custom_WP_Widget_Meta' );
} );
Merci pour le bout code, j’ai mis a jour l’article en redirigeant vers votre commentaire.
Argh ! Arrivé ici via une recherche Google, je vois que vous avez redirigé votre article sur le bout de code de Jean Faure sans même vous apercevoir que le copier/coller a mal été fait :
?>
» ) );
$title = strip_tags($instance[‘title’]);
?>
Ce hack ne fonctionne donc pas du tout. Ça discrédite le sérieux de vos articles et l’envie d’y naviguer davantage…
Bonjour,
Tardivement mais oui désolé, je n’ai pas testé la solution proposée, vous avez raison et merci de votre retour 😉
Je viens de réactualiser le billet avec des solutions plus actuelles que je maîtrise mieux que le code…
Cordialement
Bonsoir,
Ne pas toucher aux fichiers, ne pas toucher au core de WordPress, à chaque mise à jour, tout sera écrasé, tout va revenir normalement.
Utiliser un plugin à la place
https://wordpress.org/plugins/tabbed-login/
https://wordpress.org/plugins/login-logout/
https://wordpress.org/plugins/sidebar-login/
Bonsoir, oui effectivement vous avez complètement raison. A l’époque les widgets n’étaient pas légion tout comme les mises à jour automatique…
Qu’est ce qui se passe lorsqu’on le met à jour ? Il faut se retaper ces lignes ?
je souhaiterais mettre log out: en « connecter », comment faire?
Merci de votre aide 😉
On peut aussi simplement ajouter quelques entrées dans le CSS du thème. Par exemple dans ton cas, utiliser le sélecteur d’attribut (car les balises li n’ont pas d’id dans le widget meta) et surcharger avec un style display:none
Yop, de rien pour le tuyau 😉 Amuse-toi bien avec le fichier functions.php, y a vraiment de quoi tuner en finesse son thème.
Merci du conseil.
Comme toujours en informatique, tout les chemins mènent à Rome, et c’est toujours bon d’avoir des avis éclairés…
Je vais donc tester la méthode de modification du fichier fonction.php.
Bonne astuce dans le fond… Dans le forme, je te conseille plutôt de suivre la voie recommandée par WordPress pour modifier les widgets originaux, à savoir les « surcharger » dans le fichier functions.php de ton thème. (autopromo => j’avais écris un article au sujet de cette méthode http://blog.burninghat.net/2007/06/09/wordpress-22-modifier-les-widgets-originaux/)
Avantages de la méthode:
– pas de risque de « fusiller » son blog lors d’une erreur de manip
– pas besoin de la refaire (ou de ré-uploader son fichier modifié) à chaque mise à jour de sa plateforme WordPress vu que c’est lié au thème et non au « core » du système