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' );