it-swarm.com.de

Hinzufügen von Inhalten zum Widget-Titel im Administrationsbereich des Widgets?

Ist es möglich, Inhalt (Symbol & Text) zum Widget-Titel im Admin-Bereich und im Customizer hinzuzufügen, basierend auf einem anderen Wert aus dem Widget?

Widgets sind benutzerdefiniert und von mir entwickelt (nicht WP Standard)

Idealerweise sollte es im Admin-Bereich & Customizer funktionieren. Auf dem Frontend werden nun zusätzliche Inhalte angezeigt.


 enter image description here 


Anschließend ändert der Benutzer eine Option im Widget und ändert beim Speichern den Titel in

 enter image description here 


Ich habe es geschafft, dies mit JS und .on('widget-updated widget-added') event zu erreichen, aber ich habe nach einem robusteren Ansatz gesucht, da er im Customizer nicht funktioniert.

4
Runnick

Sie können Filter für widget_title hook hinzufügen.

Oder ändern Sie den $instance['title'] beim Update.

1
Moshe Harush

Nach meinem Verständnis kann ich Ihnen vorschlagen, dass Sie möglicherweise so etwas wie font-awesome verwenden können. Auf diese Weise können Sie mithilfe einer einfachen CSS-Klasse eine Art Bild anzeigen.

Bitte überprüfen Sie meine Lösung und teilen Sie mir Ihre Ansichten dazu mit.

0
user132643

Lassen Sie mich jede Situation beschreiben.

 The widgets 

  1. Wenn Sie "Suche" auf dem obigen Screenshot ändern möchten, sollte ich Sie enttäuschen, Sie können in /wp-admin/includes/widgets.php (Zeile 232) und in jeder Widget-Klasse (Ich öffnete/wp-includes/widgets/class-wp-widget-search.php) und Sie werden feststellen, dass es keine Filter-Hooks dafür gibt. Es kann nur in Ihren benutzerdefinierten Widgets geändert werden.

Auf meinem benutzerdefinierten Widget ändere ich es in diesem Teil des Widget-Klassencodes:

    function __construct() {
         parent::__construct(
            'misha_widget', 
            'Widget title', // here it is
            array( 'description' => 'Widget description' )
        );
    }
  1. Wenn Sie "Meine Suche" für das Widget im Administratorbereich ändern möchten, ist JavaScript eine gute Möglichkeit, dies zu tun, da WordPress dies auch mit JS erledigt. Der widget_title-Hook wird nur für das Erscheinungsbild der Website angewendet, nicht für den Administrationsbereich oder den Customizer:

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

Was ist mit Customizer? Eine Anleitung zum Ausführen von benutzerdefiniertem JS-Code finden Sie hier https://codex.wordpress.org/Theme_Customization_API#Step_2:_Create_a_JavaScript_File

0
Misha Rudrastyh