WPでウィジェット追加時に「利用できるウィジェット」に表示させる順序をコントロールする:メモ

正規の方法がわからず試してできたという内容です。そのためバッドノウハウかもしれません。

実現したいこと

利用できるウィジェット
利用できるウィジェット
  • WordPressでウィジェットを自作して追加する
  • 追加したウィジェットを、管理画面の「外観>ウィジェット」の「利用できるウィジェット」で任意の位置に置きたい

デフォルトでもかなりの数が並んでいるので、自作したウィジェットを目立つところに置くことができれば良いなというのが趣旨です。可能なら任意の位置に配置したいところ。

実現する方法

わかりやすくするために、上記のページよりコードの一部を引用して用います。


class Foo_Widget extends WP_Widget {
  /**
  * WordPress でウィジェットを登録
  */
  function __construct() {
    parent::__construct(
      'foo_widget', // Base ID
      __( 'ウィジェットのタイトル', 'text_domain' ), // Name  ←ここ!!
      array( 'description' => __( 'サンプルのウィジェット「Foo Widget」です。', 'text_domain' ), ) // Args
    );
  }
//省略
}

上記で「←ここ!!」と書いているNameに設定する名称が重要になります。具体的には以下の通り。

  • Nameに設定した先頭の文字で順番が決まる
  • 数字→アルファベット→日本語の順番で並ぶ
  • Name1_ウィジェットのタイトルのように設定すると最初に設置できる

問題もある手法ですが、入れ込みたい場所に合わせてNameの一文字目を設定すれば、その位置に表示されます。

例えばRSSの下に入れたいときは以下のようにすれば概ね実現できるはずです。


class Foo_Widget extends WP_Widget {
  /**
  * WordPress でウィジェットを登録
  */
  function __construct() {
    parent::__construct(
      'foo_widget', // Base ID
      __( 'z_ウィジェットのタイトル', 'text_domain' ), // Name  ←ここ!!  先頭に"z_"を追加
      array( 'description' => __( 'サンプルのウィジェット「Foo Widget」です。', 'text_domain' ), ) // Args
    );
  }
//省略
}

結び

任意の位置に配置するための関数やパラメータ的なものがどこかあるのではと思うのですが、コーデックスでも「ウィジェット 位置」などで調べてもノイズばかりで見つからず。

0人がこの記事を評価

役に立ったよという方は上の「記事を評価する」ボタンをクリックしてもらえると嬉しいです。

連投防止のためにCookie使用。SNSへの投稿など他サービスとの連動は一切ありません。

コメント欄