work.log

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

WordPressの初期設定をお手軽にプラグイン化

投稿:

WordPress の初期設定を自動化しようというメモ書きです。

下記の記事で調べた (自分が触っている) 初期設定値をプラグイン化してみます。

関連記事
WordPressの初期設定を自動化したい

プラグイン化といってもそう手の込んだものではなく、以前に作成した「スニペットをまとめるプラグイン」を使ってお手軽な感じにしてみました。

※ どうせ一度有効化しちゃえば後はほぼ触る事もないしと言うことで。

関連記事
WordPressのスニペットをまとめるプラグイン

まずは、下記のようなコードを上記プラグインの snippets ディレクトリへ突っ込みます。

ファイル拡張子が “.php” になっていれば名前は何でも OK です。

<?php
function my_init_options() {

	$opt = array(
		'rss_use_excerpt'        => 1,
		'default_pingback_flag'  => 0,
		'default_ping_status'    => 'close',
		'default_comment_status' => 'close',
		'thumbnail_size_h'       => 150,
		'thumbnail_size_w'       => 150,
		'thumbnail_crop'         => 1,
		'medium_size_h'          => 640,
		'medium_size_w'          => 640,
		'large_size_h'           => 1024,
		'large_size_w'           => 1024,
		'permalink_structure'    => '/%post_id%.html'
	);

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

}
?>

こんな感じに必要な設定値を書いて foreach で片っ端から反映させる処理にしました。

次に、スニペットまとめプラグインのメインファイルを若干修正します。

<?php
/*
Plugin Name: My Functions Snippets
Description: コードスニペットまとめプラグイン
*/

if ( ! defined( 'snippets_dir' ) ) {
	define( 'snippets_dir', dirname( __FILE__ ) . '/snippets' );
}

foreach ( glob( snippets_dir . '/*.php') as $file ) {
	include_once( $file );
}
register_activation_hook( __FILE__, 'my_init_options' );
?>

WordPress 関数の register_activation_hook を追加して、このプラグインを有効化した際に先ほどのコードを一度だけ実行するようにしてみました。

自動で設定した値は後から手動変更もできますが、このプラグインを「停止→有効化」とやってしまうとまた設定値が上書きされるので注意。

汎用性のある設定だけを書いとくのが無難ですね。

このスニペットまとめプラグインは見かけのわりに結構便利で、汎用性のあるコードはとりあえず入れておくとカスタマイズが捗ります。

全然続きを書けていないのですが、git と組み合わせて使うようになってから環境の準備が格段に楽になった気がしてます。

簡単ですが WordPress の初期設定を自動化についてはこれで以上です。