Underscores で魔改造したメモその4。
ダイナミックサイドバーの対応とウィジェットの自作について。
- Compass導入編
- ナビゲーションメニュー改造編
- Bootstrap(Sass)導入編
- ウィジェット作成編 ←今ここ
もうUnderscores関係なくなってきたけど(゚ε゚) キニシナイ!!
ダイナミックサイドバー
Underscoresは対応済みなので外観のウィジェット開くとサイドバーの設定が出来る状態になっている。
これの設定はfunctions.php の gf_widgets_init()
関数にあるんで、
適当に改変すれば増やしたり減らしたり出来る。
register_sidebar( array( 'name' => __( 'Sidebar', 'my' ), 'id' => 'sidebar-1', 'before_widget' => '<aside id="%1$s" class="widget %2$s">', 'after_widget' => '</aside>', 'before_title' => '<h1 class="widget-title">', 'after_title' => '</h1>', ) );
register_sideber のオプションはこうです
register_sidebar(array( 'name' => 'サイドバーの名前', 'id' => 'サイドバーのID', 'description' => 'サイドバーの説明', 'before_widget' => 'ウィジェットの前のテキスト', 'after_widget' => 'ウィジェットの後のテキスト', 'before_title' => 'ウィジェットタイトルの前のテキスト', 'after_title' => 'ウィジェットタイトルの後のテキスト', ) );
register_sidebarsとの違いは、任意の名前がつけられる事とマークアップを変えられる事くらいです。
まあこっち使っておけばいいと思う。
IDは好きに付けられるが、長過ぎるとだめらしい。
ダイナミックサイドバーの表示
dynamic_sidebar タグで register_sidebarのオプションで指定したIDを引数として渡せば登録したWidgetが表示される。
何も登録されてない場合も考慮して is_dynamic_sidebar で条件分岐しておく。
<?php if ( is_dynamic_sidebar( 'sidebar-1' ) ) : ?> <!-- ウィジェットがある --> <?php dynamic_sidebar( 'sidebar-1' ); ?> <?php else: ?> <!-- ウィジェットがなかった --> <?php endif; // end sidebar widget area ?>
ウィジェットプラグイン作成
wp-contents/pluginディレクトリ内に適当なディレクトリとphpファイルを作る。
作ったphpファイルを開いて、先頭にプラグインの説明と著作権等をコピペ。
ウィジェットのサンプルを続けてコピペする
class SampleWidget extends WP_Widget {
/** constructor */
function SampleWidget() {
//id, name, args
parent::WP_Widget(false, $name = ‘SampleWidget’);
}
/** @see WP_Widget::widget */
function widget($args, $instance) {
//$args →register_sideverのオプション
//$instance→保存したデータ
extract( $args ); //変数に展開
$title = apply_filters(‘widget_title’, $instance[‘title’]); //整形
?>
Hello, World!
サイトでは保存したタイトルが表示される。
なんかデジャブ…と思ったら6年前に書いてました(´Д`;)
ウィジェットの仕様はほとんど仕様変わってないみたいです。