Widget に Web Icon Font など色々な項目を追加してみる。

このサイトはマルチサイトで運用しています。
記事の目的で分けようと思っていますが、更新がそこまで無いのでマルチサイトで運用の意味があるかと今日思いました。

今回は、表題の通りに Widget に色々な項目を追加しようと思います。
キーワードは in_widget_form, widget_update_callback, dynamic_sidebar_params の3つです。

in_widget_form について。

とりあえず、in_widget_formWidget API の form() メソッドに追加するような感じの良い感じのアクションフックです。

適当に、functions.php とかに以下のコードを追加してどんな値が返ってくるか確認してみましょう。

今回は検索で確認した結果。
in_widget_form_debug

$widget の値はこんな感じに返ってきました。

$return の値こんな感じに返ってきました。

$instance の値こんな感じに返ってきました。

widget_update_callback について。

in_widget_form と同様に widget_update_callback は Widget API の update() メソッドに何かするような感じの良い感じの フィルターフックです。

先ほどの in_widget_form と同様に functions.php とかに以下のコードを追加してどんな値が返ってくるか確認してみましょう。

今回は検索でタイトルに『テスト』と入力して保存ボタンを押した確認した結果。

widget_update_callback_debug

$instance の値はこんな感じに返ってきました。

$new_instance の値はこんな感じに返ってきました。

dynamic_sidebar_params について。

dynamic_sidebar_params は dynamic_sidebar に何かするような感じの良い感じの フィルターフックです。

適当に、functions.php とかに以下のコードを追加してどんな値が返ってくるか確認してみましょう。

$params の値こんな感じに返ってきました。

before_widgetafter_widgetbefore_titleafter_title 等は内容に見えますが、register_sidebar で追加したような値が返ってきます。

上記を踏まえ、今回は Awesome の Web Icon Font のを追加するのでそれように書いていきます。
ここからは面倒くさいので説明を省きます。

とりあえず、項目を追加するために in_widget_form を以下のようにしていきます。

これで各ウィジェットに selector で facebook, twitter, android, apple, github, wordpress, search の項目が追加されたと思います。

add_in_widget_form

次に、項目を保存するために widget_update_callback を以下のようにしていきます。

これで、追加した項目を保存することができます。

次に保存した項目を Widget に反映するように dynamic_sidebar_params  以下のようにします。

これで、before_title に追加した Web Icon Font を追加することができました。

このままでは、Web Icon Font が表示されないので、以下を追加します。

最終的にこんな感じになります。

select-search

show-search

 

多分これで表示できると思います、表示されなかったらすみません。
また、各関数の my_ は自分の環境に置き換えて下さい。

あと、以下の書籍はおすすめです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です