hiromasa.zone : o)

2005/9/9 Friday 投稿時の月齢:6.1  月名:七日月  潮汐:小潮 Moon:6.1[七日月]今日の心技体 : 低調期低調期好調期

Re: WordPress Theme Toolkit このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加

日記 - ひろまさ @ 20:12

WordPress Theme Toolkit@Masayan さんにトラックバックしています。 😀

WordPress Theme Toolkit という便利なライブラリがでています。 管理画面マニアが龍虎乱舞じゃなくて狂喜乱舞しそうな、便利なライブラリです。

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 で書いている文言があります。 これを管理画面から変更できるようにしてみます。

まずは、ツールキットを有効にするための事前準備をします。

  1. ツールキット(themetoolkit.php と functions.php)を使っているテーマディレクトリにコピーします。
  2. お使いのテーマの、 header.php (や index.php)の最初などに次のコードを挿入します。
  1.  <?php
  2.  include_once(dirname(__FILE__) . '/functions.php');
  3.  ?>

これで管理画面にそのテーマ用の設定画面が、表示 -> テーマ名 に現れます。

テーマ管理画面

デフォルトでいくつかの設定ができるように、サンプルが設定されています。 これらをコントロールするのが、function. php です。

  1.  themetoolkit(
  2.    'mytheme',
  3.    array(
  4.    'setting1' => 'Setting One ## This is setting one.',
  5.    'setting2' => 'Stuff {textarea|6|50} ## Enter some text',
  6.    'setting3' => 'Choice {radio|choice1|Choice One|choice2|Choice Two} ## Chose one.',
  7.    'setting4' => 'Multiple choice {checkbox|mc1|happy|Are you Happy ?|mc2|human|Are you Human ?} ## Chose any',
  8.  
  9.    'debug' => 'debug',    /* this is a fake entry that will activate the "Programmer's Corner"
  10.    ),
  11.    __FILE__
  12.  );

標準のサンプルの上部、themetoolkit で囲まれている部分が管理画面に表示するフォームを定義するところです。 setting 1 ~ 4 までの部分が画面のそれぞれに対応しているので、見比べればすぐ分かると思います。

ここでは、サイドバーの右上をひとつ変更したいだけなので、setting1 だけにして次のようにしています。(コメントは除いています)

  1.  themetoolkit(
  2.    'mytheme',
  3.    array(
  4.    'setting1' => 'このブログについて {textarea|6|50} ## テキストを入れてください',
  5.    'debug' => 'debug',
  6.    ),
  7.    __FILE__ /* Parent. DO NOT MODIFY THIS LINE !
  8.  );

修正後、画面はこんなかんじになります。

テーマ管理画面

「このブログについて」というテキストボックスが追加されました。 この状態でテキストを入力や修正して Store Option ボタンを押下すればすれば勝手に WP に保存してくれます。(なんと簡単な!)

あとは、この保存された値をテーマで取得できればいいわけです。ここでは、setting1 という名前にしましたが、この名称をつかった次の書き方でプログラムからアクセスできます。 直接、テーマの PHP に書いてもいいのですが、せっかくなので function.php に「データを表示する関数」を定義しましょう。関数名は他とかぶらないような名前にして、function.php に次を追加します。

  1.  function hiromasa_zone_about() {
  2.    global $mytheme;
  3.    print "<p>" . $mytheme->option['setting1'] . "</p>";
  4.  }

$mytheme->option[‘名称’] で管理画面で設定されている値を取得できるわけです。

次にテーマの PHP の文言を挿入したい部分で、追加した関数を呼び出します。

  1.  <?php hiromasa_zone_about(); ?>

これでめでたく、データがテーマに挿入されました。 管理画面から値を修正していろいろ遊んでみましょう。 🙂

サイドバー

ここでは簡単なテキストボックスの例でしたが、チェックボックス等もつかえますので、その値で条件分岐をさせてテーマの動作を変更することも出来ます。本家のサンプルでは、設定によりサイドバーの左右を変えたりしていますね。

テーマの作者さんがユーザにソースをいじることなく設定を変える機能を簡単に提供するためのライブラリですが、気分でテーマの内容を変えたくて、でもソースをいじりたくないぞーってなときにも便利使えます。

お試し下さい。

プラグインの管理画面の作成にも使えないかな・・・。 もう少し研究してみます。

11 Comments

Trackback

  1. From: TSJ付゛録゛II - 2006/1/7 Saturday Daytime (Trackback)

    English is difficult!!!!…

     こういうときに、英語を話せないのはつらいとつくづく感じますね(遅)。
     先日より当Weblogが不調だと、何度か垂オ上げておりますが、当サイトのオリジナル・テーマに関 (more…)

  2. From: My Today’s Diigo 05/23/2008 « Rif.wp memo - 2008/5/24 Saturday Morning (Pingback)

    […] hiromasa.zone :o) » Re: WordPress Theme Toolkit […]

  3. From: My Today’s Diigo 05/23/2008 « Rif.webmemo - 2008/5/24 Saturday Morning (Pingback)

    […] hiromasa.zone :o) » Re: WordPress Theme Toolkit […]

Comment

  1. From: Masayan - 2005/9/9 Friday Nighttime (Comment)

    おおっ、すばらすい。:idea:
    さすがですねぇ。使えるヤツだったんっすね、コイツ。(失礼だ)

  2. From: kohaku - 2005/9/9 Friday Nighttime (Comment)

    完璧な解説です。
    これって、何かに使えそうですね。
    って、:cool:

  3. From: ひろまさ - 2005/9/9 Friday Nighttime (Comment)

    お手軽に組み込めて良いものですね。:eek:

    プラグインの管理画面にも使えると良いのですが、パッチしないとダメかな・・・。もうちょっとみてみます。:cool:

  4. From: Sa・Ga - 2006/1/4 Wednesday Nighttime (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」というエラーが発生してしまいます(もちろん先方のサイトで触れられているようなブラウザ更新は試した)。

     こちらの「このサイトについて」は生きているようですが、何か別のことでもやっておられるのでしょうか?

  5. From: ひろまさ - 2006/1/4 Wednesday Nighttime (Comment)

    こんにちは~。:grin:

    こちらのほうは特にいじっていませんね~。 cannot redeclare function の先の部分を教えて頂けると何か分かるかもしれません!

  6. From: Sa・Ga - 2006/1/4 Wednesday Nighttime (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
    のコメントでいただいたものでよろしいでしょうか?

  7. From: ひろまさ - 2006/1/5 Thursday Nighttime (Comment)

    ちょっと長くなりそうでしたので、こちらからメールお送りいたしました。 よろしくお願いいたします!

  8. From: Sa・Ga - 2006/1/6 Friday Nighttime (Comment)

     メールありがとうございました。
     先ほど返信させていただきました。

     思ったよりも根が深そうです。

     最悪の場合、作者殿に下手な英語で何とかアプローチをかけてみるしかないでしょうかねぇ?
    #  一昨年日暮里駅で東京駅に行きたいと聞いてきた
    # 外国人に対しとんちんかんな返答しかできなかった私・・・。
    # 一応「9番線か10番線(山手線外回り・京浜東北線南行きホーム)
    # に行くべし」とだけ答えましたけど。片言英語で(笑)。


このサイトはコンテンツをフリーズしました。トラックバック・コメントは閉じられています。

新しいサイトは、

hiromasa.another :o)

です。 :-)

このサイトについて

このブログは引っ越しを行いコンテンツはフリーズしています。hiromasa.anotherへどうぞ。

Powerd By WordPress

We (Heart) WordPress

WordPressME Logo
WordPress Plugins

ブログ内検索

Todays Popular

WordPress Ring

はてなリング - WordPress -

情報

35 queries. 0.495 seconds.

このページの先頭へ