Widgetインスタンス毎にユニークなid属性を設定する|WordPressテーマ作成

オリジナルのウィジェットを表示する時、htmlの要素に対してid属性を設定したい場合があります。この時、同じウィジェットがページ内に複数設置されることを考慮するなら、固定の値を設定するのは望ましくありません。
そういった場合にウィジェットインスタンス毎のユニークなidを作成する方法です。

Widget固有の連番を利用する

WP_Widgetを継承しているなら、$this->numberでページ内にあるウィジェットインスタンス毎のユニークな番号が取得できます。また、$this->id_baseでクラス別のIDが取得可能です。
なので、以下のようなサンプルでIDを生成できます。

サンプル

function get_checkbox_id() {
    return $this->id_base . '-' . $this->number . '-' . 'checkbox';
}

IDの生成以外にも$this->numberは使い道がありそうですね。

get_field_id()

そもそもid属性であれば、WP_Widgetにあるget_field_id()ウィジェットインスタンス毎のユニークなidが生成可能です。

サンプル

$id = $this->get_field_id( 'checkbox' );
このエントリーをはてなブックマークに追加
にほんブログ村 IT技術ブログへ

コメント

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