web-dev-qa-db-fra.com

Ajouter du contenu au titre du widget dans la zone d'administration du widget?

Est-il possible d'ajouter du contenu (icône et texte) au titre du widget dans la zone d'administration et au personnalisateur en fonction d'une autre valeur du widget?

Les widgets sont personnalisés et développés par moi (pas WP par défaut)

Idéalement, cela devrait fonctionner dans la zone d'administration et le programme de personnalisation. Le contenu supplémentaire en façade est maintenant affiché.


 enter image description here 


Ensuite, l’utilisateur modifie une option dans le widget et, lors de l’enregistrement du titre, passe à

 enter image description here 


J'ai réussi à atteindre cet objectif avec JS et l'événement .on('widget-updated widget-added'), mais je recherchais une approche plus robuste car elle ne fonctionne pas dans le personnaliseur.

4
Runnick

Vous pouvez ajouter un filtre pour widget_title hook.

Ou changez le $instance['title'] à la mise à jour.

1
Moshe Harush

Selon ma compréhension, je peux vous suggérer d’utiliser probablement quelque chose comme Font-Awesome. Cela vous aidera à afficher une sorte d'image en utilisant une simple classe CSS.

Vous pouvez donc vérifier ma solution et me faire savoir votre point de vue à ce sujet.

0
user132643

Permettez-moi de décrire chaque situation.

 The widgets 

  1. Si vous souhaitez changer "Recherche" sur la capture d'écran ci-dessus, je vous décevrais, vous pouvez regarder dans /wp-admin/includes/widgets.php (ligne 232) et dans n’importe quelle classe de widgets (j’ai ouvert/wp-includes/widgets/class-wp-widget-search.php) et vous découvrirez qu’il n’ya pas d’accroche-filtre pour cela. Il pourrait être modifié uniquement dans vos widgets personnalisés.

Sur mon widget personnalisé, je le change dans cette partie du code de classe du widget:

    function __construct() {
         parent::__construct(
            'misha_widget', 
            'Widget title', // here it is
            array( 'description' => 'Widget description' )
        );
    }
  1. Si vous souhaitez modifier "Ma recherche" sur un widget dans la zone d'administration, JavaScript est un moyen suffisant pour le faire, car WordPress le fait également avec JS. Le hook widget_title sera appliqué uniquement pour l'apparence du site Web, pas pour la zone d'administration ou le personnalisateur:

    add_filter('widget_title', 'misha_change_title1', 10, 3 );
    function misha_change_title1( $title, $instance, $id ){
        if( $id == 'search' ) {
            return '????'. $title;
        }
        return $title;
    }
    

Que diriez-vous de customizer, vous pouvez trouver les instructions pour exécuter du code JS personnalisé ici https://codex.wordpress.org/Theme_Customization_API#Step_2:_Create_a_JavaScriptFile

0
Misha Rudrastyh