WordPress 自作プラグイン 独自プラグイン

WordPressで独自の表・汎用な?データベース・PHPコードなど実装する

タグ候補: WordPress 改造 改変 カスタマイズ 汎用データベース 表 表組 
     なんちゃってWebアプリ 独自プラグイン 自作プラグイン

    以下、試行錯誤の結果です・・(2009-10-08)
    (あまり正しい方法でないかもしれないが、こうしたらできるよ、
    程度で。時間があるならば、WordPressの公式サイトにすごく
    いいドキュメントがいっぱいあるのでそちらをまず読むことを
    お勧めする。
    たとえば
    http://wpdocs.sourceforge.jp/ )

○この文章に書いてあること

・WordPressをカスタマイズ・自前の独自データベースと統合
たとえば、自前のMySQL+PHPなWebデータベースがあったりして、

[http://........../.....php      ]
-----------------------------------------
  |ID|種類 |値段|備考    |
  | 1|りんご|100|        |
  | 2|バナナ|200|        |
  | 3|いちご|900|季節外れ|


-----------------------------------------

これを、WordPressで表示させたい、あるいは、
WordPressのデザインのまま使いたい、あるいは、
他はWordPressにお任せしてしまって、なんちゃって
Webアプリみたく、という場合。そういう場合には役に
立つかもしれない。

・テーマ・プラグイン、だけでなくてもうちょっとPHP
 レベルでWordPressをいじりたい、という人。

x テーマの作り方とかは書かれてません。テーマを利用することは
 書かれてますが・・


○ちょっとだけWordPressのこと
WordPressのカスタマイズ、改変、改造、には基本以下の2つが
必要みたい。

  1.plugiins/ にプラグインを登録
  2.themes/ から登録したプラグインを呼び出し

プラグインは結構簡単に書ける。重要なのはちゃんと重複しない
名前をつけることだ。心配だったら、my_ とか重複しない
であろう接頭名をファイルの前につければいいだろう。

一番単純なプラグインはこんなだ。コメントを除けば2,3行。

------------
<?php
  /*
  Plugin Name: my_helloworld
  */

function my_helloworld()
{
  echo "Hello World<br />\n";
}
?>
------------

これだけ。DrupalやXOOPSなどと比べてもお作法も何も
あったもんでない。これを、plugins/ 以下に、 
my_helloworld/my_helloworld.php とでも保存すれば
WordPressから見つけてくれて(パーミッションは
気をつける。たぶん、httpd のユーザーをオーナー
(apacheとか?)にして、chmod 644 でいいはずだ)。
WordPressの管理者で有効(Activate)にするだけだ。

あとは、themes/ の index.php とか page.php とか
(編集するまえに、バックアップをとっておくことを
おすすめする。なんだったっら、WordPressごと/
データベースも 
mysqldump -u user -p WORDPRESSDB > WORDPRESSDB.mysql
どかでもしておこう。WORDPRESSDBは、WordPress
を設定したときの、DB名。わからなくなったら mysqladmin 
経由で確か調べられるはず。)から、有効(Activate)にした
自作プラグインを呼び出せばよい。

たとえば、page.php
はこんな風に

<?php get_header(); ?>
    <div id="content">
 :
始まっているから、この

    <div id="content">

の下に

    <?php if ( is_page('About') ) { my_helloworld((); } ?>

の1行を入れて、Aboutページを押してみよう。
今までのAboutのページに、"Hello World"と表示されればOK。

準備運動とWordPressの動きの本質部分はこれでOKだ。(is_page
ってのは、例えば今回のように('About')と指定したら、その名前の
ページが表示される場合・・ということ。独自の機能(プラグイン)と
WordPressのナビゲーションを紐付けるとき、このワザを知っていると
便利だ。)
WordPressの動きの理解のついでにもうひとつ
このことは知っておこう..というか、お断り。
今回はデータベースはWordPressのデータベース「に」
独自のデータベースだったら、そこ「から」テーブル(表)を
インポート(持ち込んで)、操作するってルールで話を進める。
もちろん、WordPressのDBと独自DBそれぞれ独立に操作することも
できるんだろうけど、ちょっと今回はそこまで調査していない。
一方で、というか、そのため、と言ったほうがいいが、WordPress
のテーブル構成がごちゃごちゃになるので、頭の中で整理しておく
こと。WordPressのテーブルは wp_ とか頭についているので、
自分のテーブルには、me_ とかつけとくと整理されるかも。
(インポートの仕方は解説しないが、独自のデータベースを
mysqldump して、そのSQLを読んで、編集、適当な部分を
WordPress側に mysql -u user -p WORDPRESSDB < 必要場部分のSQL、
としたらいいだろう。)

○以上で、次はいよいよ独自拡張。
WordPressのページで、

http://                           |
----------------------------------
HOME   ABOUT   [TABLE]            
                                  |
  |ID|種類 |値段|備考    |        
  | 1|りんご|100|        |        |
  | 2|バナナ|200|        |        
  | 3|いちご|900|季節外れ|        |
                                  
                                  |

こんな感じで自前のテーブルを表示してみる。

< 続く...  http://adgj.net/wordpresscustom/ >

(というのもあんまりなので、思いっきり作っている最中の、
htl/htl.php というプラグインと、それを呼び出す、
page.php を置いておく。ただし、作りかけなので、それなりに
コードが汚い。

○2009-10-18 進捗
 通常画面/管理画面の2つの状態と、通常画面でのデータの追加(insert)、
 管理画面でのデータ追加(insert)、削除(delete)、更新(update)までできる
 ようになった。
 こちらで動いている(http://abilict.sasaeru.jp/hashtaglink/)

    htl_php20091018.txt

    page_php20091018.txt

   (WordPressのDBにはこれをインポートしておく)

それぞれ、plugins/htl/ (新たに作る) htl.php として設置、
 themes/buddytheme(私はByddyPress(あ、ちなみにWordPressμ))/ page.php
  を改造、して、手動でセットアップすると動くはず。)

実際に動いているところ。(4件のデータ、1ページ=3件として、1ページ目表示。
[prev][next]ボタンで、独自のテーブルのIDをとりだして、ページの行き来、
+データの新規登録ができるまでできてる。あとはデータのinsertとかsort, 
searchを考えたい・・)
 ※こちらでもう少し進んだバージョンが動いている(http://abilict.sasaeru.jp/hashtaglink/)

htl PHP sample; working on Web

相談・依頼はこちらまで
メール matsu.at.adgj.net 松浦弘智
掲示板:http://bbs.teacup.com/?parent=every&cat=2190&topics=295
チャット:http:/adgj.net/chat/

Drupal version! http://adgj.net/drupal/

CC BY 2.1
(adgj.net/wordpresscustom
by is licensed under a Creative Commons BY 2.1 License.
http://adgj.net/wordpresscustom )