work.log

元エンジニアの備忘録的ブログ

WordPressで利用するウィジェットの初期値を設定

投稿:

WordPress のメモ。

WordPress をセットアップした時に、「検索フォーム、メタ情報」等のウィジェットが最初からセットされている訳ですが、これを自分好みに初めからカスタマイズしたい。

と、いうことでこんなのを書いてみました。

<?php
function my_setup_widget() {

	$opt = array(

		/* 消すウィジェット */
		'widget_search'          => array( 1 => array( '_multiwidget' => 1 ) ),
		'widget_recent-comments' => array( 1 => array( '_multiwidget' => 1 ) ),
		'widget_archives'        => array( 1 => array( '_multiwidget' => 1 ) ),
		'widget_meta'            => array( 1 => array( '_multiwidget' => 1 ) ),

		/* 表示するウィジェット */
		'widget_recent-posts'    => array( 2 => array( 'title' => '', 'number' => 10 ), '_multiwidget' => 1 ),
		'widget_categories'      => array( 2 => array( 'title' => '', 'count' => 0, 'hierarchical' => 0, 'dropdown' => 0 ), '_multiwidget' => 1 ),
		'widget_tag_cloud'       => array( 2 => array( 'title' => '', 'taxonomy' => 'post_tag' ), '_multiwidget' => 1 ),
		'widget_text'            => array( 2 => array( 'title' => 'テキストウィジェット', 'text' => 'テキストの内容', 'filter' => 0 ), '_multiwidget' => 1 ),

		/* ウィジェットの表示順 (TwentyTwelve 用) */
		'sidebars_widgets'       => array( 'wp_inactive_widgets' => array(), 'sidebar-1' => array( 0 => 'recent-posts-2', 1 => 'categories-2', 2 => 'tag_cloud-2', 3 => 'text-2' ), 'sidebar-2' => array(), 'sidebar-3' => array(), 'array_version' => 3 ),

	);

	foreach ( $opt as $key => $value ) {
		update_option( $key, $value );
	}

	return;

}
?>

検索フォームとかメタ情報はとりあえず要らなくて、下記だけあれば最初は十分という前提です。

  • 最新の投稿 (10 件)
  • カテゴリ
  • タグ
  • テキストウィジェット (ショートコード用に使いたい)

sidebars_widgets でウィジェットの並び順等を指定しているのですが、設定値にウィジェットエリア名 ? みたいなのを設定する必要があります。

なので、これは多分 TwentyTwelve にしか使えないはず。

他のテーマで使うには「sidebar-n」の部分をそのテーマで設定されている名前に書き換える必要がある。

これも、初期設定プラグインの中に突っ込むととても幸せになれると思う。