WordPressのプラグインで独自のページを作る方法がわからない
WordPressのプラグインを開発していて疑問がでてきました。プラグイン独自のページはどうすればいいのか?開発している宿の予約プラグインで、一般の人が見るカレンダーや予約フォームなどを、どう実装すればいいのか?例えばショッピングカートのページなども同様です。
ショートコードを使う方法
簡単に思いついたのは「ショートコード」。これを作って固定ページで予約フォームなどを用意しておきショートコードを貼り付ける方法です。
固定ページなので上下に好きな文章や画像をいれることが簡単です。多くのプラグインで使われているスタンダードな方法です。
専用のファイル(テンプレート)を用意する方法
次に考えたのは専用のテンプレートファイルを用意する方法。実際に実現できるのかどうかはわかりません(キリッ。これはショートコードよりもカスタマイズの自由度が増します。しかしショートコードよりもカスタマイズが難しいのではないかと思います。
ショートコードも同様ですがバージョナップなども面倒になりそうです。
実物を調べてみる
そこで、実際にどうやって実現されているのか?Welcart e-Commerceというショッピングカートプラグインを探って見ることにしました。
最初に調べたのは「カートに入れる」ボタンの form action の値です。
<form action="http://********.jp/usces-cart" method="post">
コレを見るとドメイン直下の「usces-cart」へ飛びます。サーバーのフォルダを確認してみても、当然ですがこのような名前のフォルダやファイルは存在していません。意味がよく分からないので、プラグインフォルダの中身を覗いてみます。そういえば前にカートのデザイン調整したことあったのに忘れてました。
ここで使われているHTMLはプラグインフォルダ内のtempletes/cart/cart.php というファイルのようです。ソースを見て検索して確認しました。このファイルは変数の設定が並べてあるファイルで、これらの変数を別の場所から読み込んでいるようです。詳しく見ると templates フォルダ内のファイルはほとんどこんな感じで変数への代入がファイルになっています。
そこで「cart/cart.php」を読み込んでいるファイルを検索して探しだしてみます。するとたったひとつのファイルで読み込まれていることを発見しました。
/classes/usceshop.class.php
function filter_cartContent($content) { global $post; $html = ''; switch($this->page){ case 'cart': $temp_path = apply_filters('usces_template_path_cart', USCES_PLUGIN_DIR . '/templates/cart/cart.php'); include( $temp_path ); break;
8000行近くある大きなファイルです。後半部分に以上のような読み込み部分があります。
ここから関数「filter_cartContent」を追いかけたり「$this->page」を追いかけたり…挫折しました(涙)。$pageへの読み込みが私には理解出来ませんでした。
というわけで、スタンダードな固定ページへのショートコードが一番いいですね!というヘタレ記事になりました〜。
リベンジで違うプラグインを探検してみます。今度は理解できたら記事にします。すいません。
Sponsored Link
関連記事
-
ペンション・民宿・プチホテル用 宿泊予約 WordPress プラグインを作る(9)空室管理画面を考える
前回までで基本的なプラグインの制作方法を簡単に学びました。今回からは空室管理の画面を作ってみます。柔
-
ペンション・民宿・プチホテル用 宿泊予約 WordPress プラグインを作る(10)空室管理画面 A
さっそく空室管理画面を作っていきます。今回は画面設計中心です。部屋タイプの選択と、空き情報を更新する
-
WordPressのオリジナルプラグインにショートコード機能を持たせる
ペンション・民宿・プチホテル用 宿泊予約 WordPress プラグインを作る連載で、ショートコード
-
WordPressのプラグイン開発を効率的にするフレームワークたち
Wordpressでプラグインを作っていて「フレームワーク使えないのかな?」と疑問を持ちました。そこ
-
ペンション・民宿・プチホテル用 宿泊予約 WordPress プラグインを作る(11)空室管理画面 B
空室管理画面の2回目。今回は空室状況の入力欄と月が変わった時の処理を加えてみます。今回は一覧表示なの
ご質問は掲示板へお願いいたします。