Re: WordPress Theme Toolkit
WordPress Theme Toolkit@Masayan さんにトラックバックしています。 😀
WordPress Theme Toolkit という便利なライブラリがでています。 管理画面マニアが龍虎乱舞じゃなくて狂喜乱舞しそうな、便利なライブラリです。
WordPress Theme Toolkit is a PHP class that gives WordPress theme authors the opportunity of creating a persistent admin menu for their theme as easily as editing 3 lines in a file.
管理画面をつくるのってなかなか大変で、HTML でフォーム書いて、POST うけして、解析して、WPのデータベースにシリアライズして書き込んで、、なんてやっていると、結構大変で気持ちが萎えてきます。 🙂
このツールキットはテーマの設定に関する管理画面を簡単に追加できるライブラリです。 テーマ作成者さんのみならず、自分のサイトを設定によって動的にしたい場合にも便利に使えます。
というわけで、簡単なサンプルを紹介します。
このサイトの画面右、サイドバーの一番上に、
主にコンピュータ関連の思いつきや思い出話などを記載している個人のサイトです。
という、テーマの PHP ファイルに直接 HTML で書いている文言があります。 これを管理画面から変更できるようにしてみます。
まずは、ツールキットを有効にするための事前準備をします。
-
ツールキット(themetoolkit.php と functions.php)を使っているテーマディレクトリにコピーします。
-
お使いのテーマの、 header.php (や index.php)の最初などに次のコードを挿入します。
- <?php
- include_once(dirname(__FILE__) . '/functions.php');
- ?>
これで管理画面にそのテーマ用の設定画面が、表示 -> テーマ名 に現れます。
デフォルトでいくつかの設定ができるように、サンプルが設定されています。 これらをコントロールするのが、function. php です。
- themetoolkit(
- 'mytheme',
- array(
- 'setting1' => 'Setting One ## This is setting one.',
- 'setting2' => 'Stuff {textarea|6|50} ## Enter some text',
- 'setting3' => 'Choice {radio|choice1|Choice One|choice2|Choice Two} ## Chose one.',
- 'setting4' => 'Multiple choice {checkbox|mc1|happy|Are you Happy ?|mc2|human|Are you Human ?} ## Chose any',
- 'debug' => 'debug', /* this is a fake entry that will activate the "Programmer's Corner"
- ),
- __FILE__
- );
標準のサンプルの上部、themetoolkit で囲まれている部分が管理画面に表示するフォームを定義するところです。 setting 1 ~ 4 までの部分が画面のそれぞれに対応しているので、見比べればすぐ分かると思います。
ここでは、サイドバーの右上をひとつ変更したいだけなので、setting1 だけにして次のようにしています。(コメントは除いています)
- themetoolkit(
- 'mytheme',
- array(
- 'setting1' => 'このブログについて {textarea|6|50} ## テキストを入れてください',
- 'debug' => 'debug',
- ),
- __FILE__ /* Parent. DO NOT MODIFY THIS LINE !
- );
修正後、画面はこんなかんじになります。
「このブログについて」というテキストボックスが追加されました。 この状態でテキストを入力や修正して Store Option ボタンを押下すればすれば勝手に WP に保存してくれます。(なんと簡単な!)
あとは、この保存された値をテーマで取得できればいいわけです。ここでは、setting1 という名前にしましたが、この名称をつかった次の書き方でプログラムからアクセスできます。 直接、テーマの PHP に書いてもいいのですが、せっかくなので function.php に「データを表示する関数」を定義しましょう。関数名は他とかぶらないような名前にして、function.php に次を追加します。
- function hiromasa_zone_about() {
- global $mytheme;
- print "<p>" . $mytheme->option['setting1'] . "</p>";
- }
$mytheme->option[‘名称’] で管理画面で設定されている値を取得できるわけです。
次にテーマの PHP の文言を挿入したい部分で、追加した関数を呼び出します。
- <?php hiromasa_zone_about(); ?>
これでめでたく、データがテーマに挿入されました。 管理画面から値を修正していろいろ遊んでみましょう。 🙂
ここでは簡単なテキストボックスの例でしたが、チェックボックス等もつかえますので、その値で条件分岐をさせてテーマの動作を変更することも出来ます。本家のサンプルでは、設定によりサイドバーの左右を変えたりしていますね。
テーマの作者さんがユーザにソースをいじることなく設定を変える機能を簡単に提供するためのライブラリですが、気分でテーマの内容を変えたくて、でもソースをいじりたくないぞーってなときにも便利使えます。
お試し下さい。
プラグインの管理画面の作成にも使えないかな・・・。 もう少し研究してみます。
11 Comments
Trackback
Comment
-
From: Masayan - 2005/9/9 Friday (Comment)
おおっ、すばらすい。:idea:
さすがですねぇ。使えるヤツだったんっすね、コイツ。(失礼だ)
-
From: kohaku - 2005/9/9 Friday (Comment)
完璧な解説です。
これって、何かに使えそうですね。
って、:cool:
-
From: ひろまさ - 2005/9/9 Friday (Comment)
お手軽に組み込めて良いものですね。:eek:
プラグインの管理画面にも使えると良いのですが、パッチしないとダメかな・・・。もうちょっとみてみます。:cool:
-
From: Sa・Ga - 2006/1/4 Wednesday (Comment)
たびたび失礼します。
先ほど、私のところも「WordPress ME 2.0」にアップグレードしたのですが、どうも「Theme Toolkit」がうまく動いていない模様です。
http://frenchfragfactory.net/ozh/index.php?s=Theme+Toolkit&Submit=%C2%BB
で公開されている「themetoolkit.php」を1.5用のものに置き換えただけですが、「cannot redeclare function」というエラーが発生してしまいます(もちろん先方のサイトで触れられているようなブラウザ更新は試した)。
こちらの「このサイトについて」は生きているようですが、何か別のことでもやっておられるのでしょうか?
-
From: ひろまさ - 2006/1/4 Wednesday (Comment)
こんにちは~。:grin:
こちらのほうは特にいじっていませんね~。 cannot redeclare function の先の部分を教えて頂けると何か分かるかもしれません!
-
From: Sa・Ga - 2006/1/4 Wednesday (Comment)
この様なメッセージでした。
Fatal error: Cannot redeclare creditcard() (previously declared in /(Weblog置き場までのパス)/wp-content/themes/tsj/functions.php:78) in /(Weblog置き場までのパス)/wp-content/themes/tsj/functions.php on line 77
ちなみに指摘されている場所周辺のソースはこの様になっております。
functions.php
—
77. function creditcard() {
78. global $mytheme;
79. print “My Credit Card Number is : “;
80. print $mytheme->option[‘creditcard’];
81. }
—
・・・ただ、これだけだとさっぱりワケワカメだと思いますので、もしよろしければテーマ一式のソースを送らせていただきたいと思います。
その場合、メールアドレスは
http://blog2.atsj.net/2005/09/16/847#comments
のコメントでいただいたものでよろしいでしょうか?
-
From: ひろまさ - 2006/1/5 Thursday (Comment)
ちょっと長くなりそうでしたので、こちらからメールお送りいたしました。 よろしくお願いいたします!
-
From: Sa・Ga - 2006/1/6 Friday (Comment)
メールありがとうございました。
先ほど返信させていただきました。
思ったよりも根が深そうです。
最悪の場合、作者殿に下手な英語で何とかアプローチをかけてみるしかないでしょうかねぇ?
# 一昨年日暮里駅で東京駅に行きたいと聞いてきた
# 外国人に対しとんちんかんな返答しかできなかった私・・・。
# 一応「9番線か10番線(山手線外回り・京浜東北線南行きホーム)
# に行くべし」とだけ答えましたけど。片言英語で(笑)。
-
From: Masayan - 2005/9/9 Friday (Comment)
おおっ、すばらすい。:idea:
さすがですねぇ。使えるヤツだったんっすね、コイツ。(失礼だ) -
From: kohaku - 2005/9/9 Friday (Comment)
完璧な解説です。
これって、何かに使えそうですね。
って、:cool: -
From: ひろまさ - 2005/9/9 Friday (Comment)
お手軽に組み込めて良いものですね。:eek:
プラグインの管理画面にも使えると良いのですが、パッチしないとダメかな・・・。もうちょっとみてみます。:cool:
-
From: Sa・Ga - 2006/1/4 Wednesday (Comment)
たびたび失礼します。
先ほど、私のところも「WordPress ME 2.0」にアップグレードしたのですが、どうも「Theme Toolkit」がうまく動いていない模様です。
http://frenchfragfactory.net/ozh/index.php?s=Theme+Toolkit&Submit=%C2%BB
で公開されている「themetoolkit.php」を1.5用のものに置き換えただけですが、「cannot redeclare function」というエラーが発生してしまいます(もちろん先方のサイトで触れられているようなブラウザ更新は試した)。こちらの「このサイトについて」は生きているようですが、何か別のことでもやっておられるのでしょうか?
-
From: ひろまさ - 2006/1/4 Wednesday (Comment)
こんにちは~。:grin:
こちらのほうは特にいじっていませんね~。 cannot redeclare function の先の部分を教えて頂けると何か分かるかもしれません!
-
From: Sa・Ga - 2006/1/4 Wednesday (Comment)
この様なメッセージでした。
Fatal error: Cannot redeclare creditcard() (previously declared in /(Weblog置き場までのパス)/wp-content/themes/tsj/functions.php:78) in /(Weblog置き場までのパス)/wp-content/themes/tsj/functions.php on line 77
ちなみに指摘されている場所周辺のソースはこの様になっております。
functions.php
—
77. function creditcard() {
78. global $mytheme;
79. print “My Credit Card Number is : “;
80. print $mytheme->option[‘creditcard’];
81. }
—・・・ただ、これだけだとさっぱりワケワカメだと思いますので、もしよろしければテーマ一式のソースを送らせていただきたいと思います。
その場合、メールアドレスは
http://blog2.atsj.net/2005/09/16/847#comments
のコメントでいただいたものでよろしいでしょうか? -
From: ひろまさ - 2006/1/5 Thursday (Comment)
ちょっと長くなりそうでしたので、こちらからメールお送りいたしました。 よろしくお願いいたします!
-
From: Sa・Ga - 2006/1/6 Friday (Comment)
メールありがとうございました。
先ほど返信させていただきました。思ったよりも根が深そうです。
最悪の場合、作者殿に下手な英語で何とかアプローチをかけてみるしかないでしょうかねぇ?
# 一昨年日暮里駅で東京駅に行きたいと聞いてきた
# 外国人に対しとんちんかんな返答しかできなかった私・・・。
# 一応「9番線か10番線(山手線外回り・京浜東北線南行きホーム)
# に行くべし」とだけ答えましたけど。片言英語で(笑)。
From: TSJ付゛録゛II - 2006/1/7 Saturday (Trackback)
English is difficult!!!!…
こういうときに、英語を話せないのはつらいとつくづく感じますね(遅)。
先日より当Weblogが不調だと、何度か垂オ上げておりますが、当サイトのオリジナル・テーマに関 (more…)
[続きを読む]
From: My Today’s Diigo 05/23/2008 « Rif.wp memo - 2008/5/24 Saturday (Pingback)
[…] hiromasa.zone :o) » Re: WordPress Theme Toolkit […]
From: My Today’s Diigo 05/23/2008 « Rif.webmemo - 2008/5/24 Saturday (Pingback)
[…] hiromasa.zone :o) » Re: WordPress Theme Toolkit […]