レンタルサーバー選びの迷いを解決!全力サポートします

Google or AdMax Promotion (srv)

WordPressの固定ページ(又は投稿)を利用したアプリケーションの作成

WordPressはカスタマイズも簡単で便利なCMSです。
ブログやホームページをWordPressを利用して公開する事が主な利用方法ではありますが、
ユーザーの操作に合せて、何らかの結果を表示するような、
Webアプリケーションを組み込むことも容易です。(アイディア次第?)
アプリケーションを主としたサイトとして作りながら、
「新着情報はブログ(投稿)、使い方などは固定ページを利用」という
使い方をするとWordPressをオマケとして活用することもできます。

尚、本ページは以下の1コンテンツとして紹介しているものです。
一連の流れは以下をご参照ください。

WordPressの固定ページ(又は投稿)を利用したアプリケーションの作成

WordPressにアプリケーションを組み込むと言っても、
大げさなことをする訳ではありません。

皆大好き「ショートコード」を独自に定義して、
そのショートコードを固定ページや投稿のコンテンツエリアに貼るだけです。

ショートコードが実行するプログラムの内容は人それぞれでしょう。

ショートコードって渡すパラメータが固定になるんじゃないの?

一般的にはショートコードの使い方としては以下のように記載するでしょう。

[shortcode a=123]

記事や固定ページの中に「a=123」と書いてしまっては、
もうそのパラメータに縛られた動作しかしない事になるので、
そう思うのは仕方ないかもしれません。

しかし、ショートコードが受け取れる値は、
当然ショートコードパラメータだけではありません。

GETやPOST、クエリ文字列などPHP(Web)として受け渡せる値を元にして、
挙動を変えるショートコードを作ればいいだけなのです。
その場合、コンテンツエリアからはパラメータを渡す必要は当然なくなります。

[shortcode]

 

URLからパラメータを受け取り、それを表示する例

以前、投稿内でご紹介したアクセスしたURLによって、
受け取る値が変化し、その値を投稿内のエリアに表示するのが簡単な例です。

以下のリンクから
「https://rensrv.com/2018/05/query_string-approach-is-reversed/」という
投稿のURLにアクセスすると、

投稿内のエリアに「/hogehoge/」部分の「hogehoge」が表示されます。

https://rensrv.com/2018/05/query_string-approach-is-reversed/hogehoge/

同様ですが「あああ」としても同じです。
https://rensrv.com/2018/05/query_string-approach-is-reversed/あああ/

これはURLの一部をパラメータとして利用して、
ショートコードが値を受け取って、表示する簡単なものです。

 

実際のプログラムを考える

このような仕組みを利用してURLで与えられた日付から、
その日の曜日を画面に表示するプログラムを実装してみます。

尚、以下プログラムの実行環境として、
クエリ文字列の追加とリライトルール定義を済ませている前提です。

WordPressのご利用のテーマディレクトリ内の
functions.phpに対してショートコードを定義します。

個人的にはというか一般的にはテーマをカスタマイズするなら、
子テーマ化をしてから、子テーマのfunctions.phpを編集する事をお勧めします。
子テーマにしたからと言ってミスったら真っ白けっけになるのは同じですので、
併せて、バックアップとローカル環境での十分なテストを行ったうえでアップロードしましょう。

また私は「functions.php」に直接ソースを書かずに、
機能ごとに別のファイルを作り、そのファイルをincludeして利用しています。

(参考)子テーマ – WordPress Codex 日本語版

 

読み込んでいるファイルは以下のように書いています。

先に上記ソースの実行イメージを確認するには以下URLで実行の確認ができます。

 

処理としてはWordPressのグルーバル変数($wp_query)から、
パラメータの「wd_ymd」という値を受け取りサニタイズ処理をして利用します。

取得した日付から曜日を求めて、
固定ページ用の出力としてショートコードへreturnします。

 

アプリケーションの作成が終われば、機能的には動作します。

ただ直接ユーザーさんがURLを叩くというより、
本来は入力フィールドを設けて、入力値から実行する事が多いはずです。

ここでは目的とは逸脱しますので、その点は割愛させて頂きます。

実際には以下のようなツールになるかと思います。

 


プロモーション

Google or AdMax Promotion (srvpos)

公開日:

コンテンツナビ
すべて展開 | すべて省略

AdMax Promotion

カテゴリ
すべて展開 | すべて省略

QRコードからもこのURLを開けます。