web-dev-qa-db-ja.com

ウィジェット内の管理領域のウィジェットタイトルにコンテンツを追加しますか?

ウィジェットからの他の値に基づいて、管理領域とカスタマイザ内のウィジェットのタイトルにコンテンツ(アイコンとテキスト)を追加することは可能ですか?

ウィジェットはカスタムで私が開発したものです(WPデフォルトのものではありません)。

理想的には、管理エリアとカスタマイザでボットが動作するはずです。フロントエンドで追加のコンテンツが表示されるようになりました。


enter image description here 


その後、ユーザーはウィジェットのオプションを変更し、保存タイトルが変わると

enter image description here 


私はこれをJSと.on('widget-updated widget-added')イベントで実現することに成功しましたが、カスタマイザではうまくいかないのでもっと堅牢なアプローチを探しています。

4
Runnick

widget_titleフック用のフィルタを追加することができます。

または更新時に$instance['title']を変更してください。

1
Moshe Harush

私の理解によれば、私はあなたがおそらく素晴らしいフォントのようなものを使うことができることをあなたに提案することができます。これは、単純なCSSクラスを使用して画像のようなものを表示するのに役立ちます。

それであなたは私の解決策をチェックし、それについてのあなたの見解を私に知らせてください。

0
user132643

すべての状況を説明しましょう。

The widgets 

  1. 上のスクリーンショットで "Search"を変更したいのであれば、私はあなたを失望させるはずです。 widgets/class-wp-widget-search.php)をクリックすると、フィルタフックがないことがわかります。カスタムウィジェットでのみ変更できます。

私のカスタムウィジェットでは、ウィジェットクラスコードのこの部分でそれを変更します。

    function __construct() {
         parent::__construct(
            'misha_widget', 
            'Widget title', // here it is
            array( 'description' => 'Widget description' )
        );
    }
  1. あなたが管理領域のウィジェットの "私の検索"を変更したいのであれば、WordPressもJSでそれをするのでJavaScriptはそれをするための十分な方法です。 widget_titleフックは、管理領域やカスタマイザではなく、Webサイトの外観にのみ適用されます。

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

カスタマイザについてはどうですか、ここでカスタムJSコードを実行する方法の指示を見つけることができます https://codex.wordpress.org/Theme_Customization_API#Step_2:_Create_a_JavaScript_File

0
Misha Rudrastyh