Archive for the プラグイン Category

qtranslateで日本語を導入したときに、日付がぐちゃぐちゃになる場合の対処

WordPressを多言語対応させるプラグイン、qtranslateで日付や時間の表示が上手くいかない場合、下記をやってみましょう。

設定 > Languages > 対象の国旗 > Editと進んで、好きなフォーマットを入力する。

で、Save Changeをクリック!

これでちゃんと表示されました。

それでも上手くいかない場合、Advanced Setting > Date / Time Conversionをチェックして、一番上のUse emulated date function.が選択されているかどうかを確認してみましょう。

WP Super Cacheの解説であるreadme.txtを、いいとこ取りで乱暴に和訳した。

主要なところ、自分に興味が有るところだけを抽出して乱暴に訳したのをコピペ。

結構役に立つんじゃないかと思います。

間違っていたら、コメントか @shinichiNまでお願いします。

== Description ==
This plugin generates static html files from your dynamic WordPress blog. After a html file is generated your webserver will serve that file instead of processing the comparatively heavier and more expensive WordPress PHP scripts.
動的なWordPressから静的なhtmlファイルを生成します。htmlファイルが生成されてからは、ウェブサーバはWordPressの重たい処理を実行する代わりにこの静的ファイルを供給します。
Continue reading WP Super Cacheの解説であるreadme.txtを、いいとこ取りで乱暴に和訳した。

安全なプラグイン用管理画面メモ

プラグインで管理画面を作る時に、ユーザにフォームに入力してもらったり、セレクトやラジオボタンなどで選択してもらってそれをデータベースに保存する時、色々なセキュリティ上の設定が必要ですが、それらについてメモします。

管理画面の作り方については、@lilyfanjpさんのこの記事にあるPDFが参考になります。

これを見ただけで僕が分からなかった部分については、@MakeGoodTimeさんに教わったりして、理解できましたので、ここで共有させてもらいます。

まずは、セレクトフォームの場合を用意して、のちのち数字、URL、メールアドレス、文字列、日付などを増やしていければと思います。

ここをコピペすれば最低限安心できる感じで。

例のフォーム

例として簡単なフォームを作ります。

<form action="" method="post">
<table>
<tr valign="top">
<th scope="row"><label for="xxx">果物</label></th>
<td>
	<select name="fruits" id="fruits">
		<?php
		$select_options = array(
		array('value' => 'apple', 'text'=>'apple'),
		array('value' => 'banana', 'text'=>'banana'),
		array('value' => 'orange', 'text'=>'orange')
		);
		foreach ($select_options as $select_option) : ?>
		<option value="<?php echo esc_attr($select_option['value']); ?>" <?php if(get_option('fruits') == $select_option['value']){ echo ' selected="selected"' } ?>><?php echo esc_attr($select_option['text']); ?></option>
		<?php endforeach; ?>
	</select>
</td>
</tr>
</table>
<p class="submit"><input type="submit" name="Submit" class="button-primary" value="変更を保存" /></p>
<form>

これで、りんご、バナナ、オレンジから一つを選んでもらうフォームができます。actionは空、methodはpostです。htmlタグは、管理画面の他のページに合わせてます。

値を保存する方法

オプションテーブルに値を保存する場合は、セキュリティを無視すると以下。

update_option('fruits', '$_POST['fruits']');

POST値を受け取って、update_option()する。

入力された値を検証すると、以下。

$fruits = $_POST['fruits'];
if ( isset( $fruits ) && in_array( $fruits, array('apple', 'banana', 'orange' ) ) ) {
	update_option('fruits', $fruits);
}

とします。セレクトの場合は想定されているものが決まっているので、それ以外の可能性を全て排除しています。

wp_nonce_field()とcheck_admin_referer()

POSTの値が、本当にこの画面から送られてきているかを、WordPressに確認してもらうために、wp_nonce_field()check_admin_referer()を使います。

wp_nonce_field()の方を、formの中に書きます。
すると送信した時に、POSTに、_wp_http_referer_wpnonceが自動的に含まれます。

一方のcheck_admin_referer()は、update_optionなどその値をどこかに保存したり出力する、リスクが発生する処理の直前に設置します。

今回の例だと、下記のようになります。

<?php
$fruits = $_POST['fruits'];
if ( isset( $fruits ) && in_array( $fruits, array('apple', 'banana', 'orange' ) ) ) {
	check_admin_referer('example'); // ←ココと、
	update_option('fruits', $fruits);
}
?>
<form action="" method="post">
<table>
<tr valign="top">
<th scope="row"><label for="xxx">果物</label></th>
<td>
	<select name="fruits" id="fruits">
		<?php
		$select_options = array(
		array('value' => 'apple', 'text'=>'apple'),
		array('value' => 'banana', 'text'=>'banana'),
		array('value' => 'orange', 'text'=>'orange')
		);
		foreach ($select_options as $select_option) : ?>
		<option value="<?php echo esc_attr($select_option['value']); ?>" <?php if(get_option('fruits') == $select_option['value']){ echo ' selected="selected"' } ?>><?php echo esc_attr($select_option['text']); ?></option>
		<?php endforeach; ?>
	</select>
</td>
</tr>
</table>
<?php wp_nonce_field('example'); // ココ。 ?>
<p class="submit"><input type="submit" name="Submit" class="button-primary" value="変更を保存" /></p>
<form>

出力するときの注意

コデックスのデータ検証を参考にする。

文字列を出力する

	$text = get_option('the_key');
	$safe_text = esc_html($text);
	echo $safe_text;

esc_html関数

Encodes < > & ” ‘ (less than, greater than, ampersand, double quote, single quote). Will never double encode entities.

Always use when escaping user-input, in forms especially.

esc_htmlとesc_attrについて。
[blackbirdpie url="http://twitter.com/#!/lilyfanjp/status/125871165376954368"]

書きかけ。。。ここに出力時の注意を足していく。

ネットワークで子ブログに直接会員登録するプラグイン(ウィジェット付き)

概要

WordPressのネットワーク(マルチサイト)インストール時に、子ブログから「登録ボタン」を押すと、親ブログの登録画面に飛ばされてしまい、そのまま登録処理をすると、親ブログに登録されてしまい、子ブログには登録されません。

これでは不便なので、プラグインを作りました。

プラグインをインストールすると、子ブログへの直接登録をするためのリンクを出力するウィジェットが設置できるようになります。

ニッチなので、あんまり需要があるかどうか。。。メモということで。

ご質問・ご指摘などは、@shinichiNまでお願いします。

m(_ _)m

Continue reading ネットワークで子ブログに直接会員登録するプラグイン(ウィジェット付き)

WP高速化、管理画面カスタマイズ、jQuery…あとで参考にしようと思ってそのままになってた記事のまとめ

ブックマークしてたり、Twitterでお気に入りしてたりして「あとで参考にしよう」とか思っててそのままになっている記事を全部まとめました。

サイト自体とWordPress高速化関連

・WordPressをチューニングして30倍高速化した方法
http://hara19.jp/archives/5817

・お前のサイト遅すぎる。せめてこれぐらいやっとけ「WEBサイト高速化」
http://www.matomematome.com/ko……s/index/32

・WordPressでのページ表示高速化の色々まとめ
http://phpspot.org/blog/archiv……ss_40.html

・WordPressを100倍速くする! MySQLの調整やnginx proxy cache
http://kray.jp/blog/wordpress-tuning/

・WordPressキャッシュ系プラグインの比較とサイトに適した選び方
http://tokkono.cute.coocan.jp/……he-plugin/

・WordPress: W3 Total Cache(W3TC)の高速化効果がスゴイ
http://www.hide10.com/archives/14515

・WordPressで作られたWebサイトの表示速度を早くするためにできること
http://webdesignrecipes.com/wo……-speed-up/

・MySQLやPHPのパフォーマンスを向上させる方法のメモ。
http://9jp.info/archives/7511

WordPressカスタマイズ関連

・UserPhoto:ユーザーの写真を加えることができるプラグイン
http://wordpress.org/extend/pl……ser-photo/
http://twitter.com/#!/jim0912/……8048075776

・WordPressを使ったWebサイトでfunctions.phpによく書いてるやつ
http://kachibito.net/wordpress……tions.html

・WordPress 3.0対応のとっても便利なプラグイン集
http://coliss.com/articles/blo……ess-3.html

・WordPressの管理画面をカスタマイズしたい時に覚えておくと重宝しそうなハックやプラグインいろいろ
http://kachibito.net/wordpress……ugins.html

・WordPressの管理画面をiPhoneなどのモバイル対応にするプラグイン -WordPress Mobile Admin
http://coliss.com/articles/blo……admin.html

・カッコいい管理画面のHTMLテンプレート総まとめ
http://phpspot.org/blog/archiv……tml_4.html

・WordPressを初導入したら まず最初にやるべき24の設定
http://design-plus1.com/tcd-w/……euser.html

・WordPressで会員制サイトを作るときの勘所
http://takahashifumiki.com/web……ming/1266/

・WordPressからデータベースに直接アクセスする
http://www.webopixel.net/wordp……s/113.html

VPSサーバ関連

・Webサービス用にさくらのVPSサーバーを借りた後で役に立つ記事色々
http://phpspot.org/blog/archiv……ebvps.html

・さくらVPSを借りてから参考にしたサイト
http://tech.qalafl.com/?p=14

テーマ関連

・プレミアムテーマで他のサイトと差をつけよう
http://ja.blog.wordpress.com/2……um-themes/

・WordPress.com公式ブログで紹介された秀逸なデザインと機能のテーマ27選
http://gigazine.net/news/20110……ss_themes/

・50 Free WordPress Themes Collection 2010
http://www.splashnology.com/bl……s/950.html

・45 Clean and Beautiful Minimalist WordPress Themes
http://www.hongkiat.com/blog/b……ss-themes/

・Post Press Postereous Theme
http://www.obox-design.com/the……post-press

・Textback WordPress Theme
http://www.amypink.com/themes/……ess-theme/

・無料で手に入るモダンで美しいデザインの白黒カラー系WordPressテーマ17個
http://kachibito.net/wordpress……hemes.html

アイコン素材

・無料で商用でも利用OKなWebdesigner Depotのアイコン集「Kaching」「Childish」「Buddycons」「Reflection」などなどとにかくいっぱい
http://gigazine.net/news/20110……ner_depot/

・フリーで商用可のハイクオリティなネットショップ用アイコンセット「E-Commerce Icon Set」&モバイル用アイコンセット「Mobile Icon Set」
http://gigazine.net/news/20100……biconset2/

jQuery

・少しのコードで実装可能な20のjQuery小技集
http://www.webcreatorbox.com/t……ry-tips20/

・jQuery Cycle Plugin(なんでも揃うスライドショーjQueryプラグイン)
http://jquery.malsup.com/cycle/

広告

・AdSenseのための17のWordPressプラグイン
http://google-mania.net/archives/610