質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

343閲覧

PHPの照会システムが含まれるWEBページとWORDPRESSの共存(?)設計について

yukiko

総合スコア41

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2017/10/31 04:53

タイトルになんと付けていいか…なのですが、「PHPの照会システムが含まれるWEBページとWORDPRESSの共存(?)設計について」としました。
教えていただきたいのは、プログラムソースとかではなく、設計の方向性への助言、あるいは参考情報のURL等です。

とあるサイトのリニューアルについて、提案の方向性を考えています。ざっと眺めたところ、WP等のCMSは現在使っていないようなのですが、新着情報等の更新はしていきたい/軽微な修正は自分たちでやりたいとのこと。

現サイトで気になるところが「製品情報」のページです。プルダウンメニューからの検索ができるようになっています。
プルダウンメニュー例:みかん/りんご/なし/パイナップル…

ここで、「りんご」を選んで検索すると、りんごを使ったメニュー一覧が出ます。「アップルパイ」「りんごのタルト」「りんごのコンフィチュール」…みたいな感じ。ここで「アップルパイ」をクリックすると、詳細画面で動画・説明文が表示されます。詳細画面は全て同じフォーマットです。よくある照会画面の機能です。

おそらくMYSQLあたりのDBに

key|fruits |menu |video_no|description
001|りんご|アップルパイ|0005124|パリッと焼きあげるポイントは…云々

こんなものが入っていて、動画はVIDEOフォルダあたりに入れてあるのかな?と想像しています。

こういった場合、リニューアルにあたって、この照会システムをどう取り扱うかで悩んでいます。
WORDPRESSを導入をせず、HTML+CSS+PHPのみで作るのであれば、ヘッダーやフッター等をincファイルあたりにして、照会システムを組み込めばいいかなと思います。

わからないのはWORDPRESSを導入する場合です。WORDPRESS自体は、テーマの簡単なカスタマイズしかやったことがないので、この手の照会システムを突っ込む場合に、一般的にはどうすべきなのかがわかりません。
通常のページはWORDPRESS管理下に置いて、照会システムについてはWORDPRESS管理外で、上記のHTML+CSS+PHPと同じ手法で作る方がいいのか、あるいはWORDPRESS管理下において、functions.phpとか?に、なんらかのプログラムを書いて作るものなのか…。

特にWORDPRESS管理下でphpプログラムを作り込む・組み込む方法がわかりません。ショートコードとか、何かそういうものでやるのでしょうか?(←すみません。全然想像がついていません;;)

考え方や参考キーワード、URL等の助言をいただけると助かります。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

特にWORDPRESS管理下でphpプログラムを作り込む・組み込む方法がわかりません。

「記事」として扱う方法(WordPressで管理し1件に付き1ページを持つかたち)が採れるなら、
urdappleさんの書かれているように「カスタムポストタイプ」「カスタムタクソノミー」「カスタムフィールド」を組み合わせて作るのが定石です。

現在のシステムをそのまま使用して新たに設置するWordPress配下に置くことは案外難しいと思います。表示だけならインクルードするだけで動くものも有ると思いますが、検索の場合少なくとも検索パラメータがWordPressの挙動と当たらないようにする必要があります。

プログラムを書く場所としてはテーマの functions.php の他、プラグインにしてしまうのが一般的かと思います。
他の方法としては、現在データを格納しているDBからAPIで値を返すようなPHPコードを別に作って、ページからはJavaScriptで取得してしまうのも手です。

PHPの書き方に慣れていれば、プラグインを作るのはそう大きな手間でも無いと思います。たとえば「 functions.php の記述が長くなったから」という理由でその部分を切り出してプラグインにされている方もおられます。

【エンジニアのためのWordPress開発入門 (Engineer's Library) | 野島 祐慈, 菱川 拓郎, 杉田 知至, 細谷 崇, 枢木 くっくる |本 | 通販 | Amazon】
https://www.amazon.co.jp/dp/4774187062

【サイトの拡張性を飛躍的に高める WordPressプラグイン開発のバイブル | 宮内 隆行, 西川 伸一, 岡本 渉, 三好 隆之 |本 | 通販 | Amazon】
https://www.amazon.co.jp/dp/4797373520

投稿2017/10/31 08:53

kei344

総合スコア69364

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yukiko

2017/10/31 14:15

実務でWPを使ったことがないので(いつも提案とかサンプル作成で終了><)、kei344さんの助言は、大変参考になります。ありがとうございます。ちゃんとお金もらえる仕事で鍛えられないと、なかなか力はつかないですね;; 参考書の紹介、ありがとうございます。「エンジニアのためのWordPress開発入門 (Engineer's Library) 」は、買ったほうがいいのかなーと、本屋で立ち読みしたことがある本です。プラグインというのも作り方とかさっぱりなので、これから勉強します。 ベストアンサーをお二人ともに差し上げたいのですが、今回はurdappleさんの方に差し上げたいと思います。また何かありましたら、よろしくお願いいたします。
yukiko

2017/11/08 05:37

「エンジニアのためのWordPress開発入門 (Engineer's Library) 」、昨日購入しました。 これから勉強いたしますm(_ _)m
guest

0

ベストアンサー

WordPressでもしも自分がやるなら・・・

1つのメニューは1投稿にします。
で、それぞれの投稿にカスタムフィールド(追加情報)で「みかん/りんご/なし/パイナップル」をチェックボックスで選択できるようにしておきます。
もしくは原材料をカテゴリーとして登録する方法もありかもです。
どちらにせよ一覧ページでその該当商品だけリスト表示するのはわりと簡単です。

で、「商品」と「新着情報」を同じ1つの投稿で入力すると訳がわからなくなるので、新着情報の方はカスタムポストを利用します。(通常の投稿とは別にもう一つ投稿項目を作る感じです)
「カスタムポスト」や「カスタムフィールド」で検索するとイロイロと方法があると思いますよ。

機能的にそれほど複雑な内容ではないので、別にPHPでシステムを作って突っ込むよりはWordPressの独自拡張機能やプラグインに任せてしまった方が楽だと思います。

投稿2017/10/31 05:17

編集2017/10/31 05:20
urdapple

総合スコア83

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yukiko

2017/10/31 05:33

ご回答ありがとうございますm(_ _)m すみません。わたしの書き方が悪かったかもです。新着情報は、照会システムに新規追加された製品情報を新着情報として出すのではなく、「会社でハロウィーンパーティーをしました」的な、そんな情報のことでした。製品情報とは無関係な。 また、この製品情報ですが、現在すでに1000件ほど入っています。これを再度入力は厳しいと思うので、もしカスタムフィールド(?)カスタムポスト(?)を使う方法であれば、カスタムフィールドが使うDB領域に、現データのコンバートをしてから利用する…という方法になるでしょうか…。 「カスタムポスト」「カスタムフィールド」の入力ページはサイト訪問者には見えず、一般の訪問者は検索して照会だけができるのであれば、それも一案ですね。 ありがとうございます。
urdapple

2017/10/31 07:07

あ、すでに1000件が登録されたDBがあるってことですね? それは再投入は面倒くさそうですけれど、WordPress(以下「WP」)にCSVでまとめて記事を投入できるプラグインもあるので、それを利用するなら前段階の投入CSVファイルを作るまでが手間ですが、作っちゃえば投入はボタン一つです。 ちなみに上のお話でも「新着情報」と「照会システムに新規追加された製品情報」とはまったく別物として話しています。 > 「カスタムポスト」「カスタムフィールド」の入力ページはサイト訪問者には見えず、一般の訪問者は検索して照会だけができるのであれば もちろんそうです。 入力ページはWPの管理者しか見ることはできません。 ちょっと長くなりますが少しWPの機能的なお話を・・・ ・カスタムポスト 通常の投稿(ポスト)とは別に投稿できるページが作成できます。 普通WPの管理画面で、左メニューバーに「投稿」というのがあると思いますけれど、それとは別の通常投稿とはまったく無関係の投稿入り口を作れると思ってもらえればいいです。 ですので、この場合ですと通常投稿を製品情報として、もう一つの投稿を新着情報投稿にする感じですね。 ・カスタムフィールド 投稿に独自の入力欄を追加できます。 通常投稿にも、カスタムポストにも利用できます。 テキスト項目はもちろんチェックボックスでもラジオボタンでも何でも追加できます。 もちろん、その1投稿と結びついた情報ですので、自作テーマのテンプレートから、その入力されたカスタムフィールドのキーを基準に投稿をリスト表示させたり、投稿そのものを表示させたりすることができます。 yukikoさんのおっしゃる仕組みをWPで作るとするとこうなります。 1,サーバにWPをインストールする。 2,WPプラグインの「Custom Post Type UI」(カスタムポストのためのプラグイン)と「Custom Field Template」(カスタムフィールドを使うためのプラグイン)をインストールする。(ちなみにカスタムポストもカスタムフィールドも、プラグインを使わなくても使えるようにできますが、functions.phpへの記載や設定など面倒なのでプラグイン利用がオススメです。どちらも日本では一般的なプラグインなのでインストールすればもう日本語化されて動きます) 3,Custom Post Type UIを使ってカスタムポストを作成する。(和名「新着情報」、スラッグ名「whatsnew」など) 4,これで、WP管理画面のメニューバーに「投稿」とは別に「新着情報」という投稿入り口ができます。(できれば「投稿」となっているWP管理画面文字列も「製品情報」とかに直したほうがお客様にもわかりやすくていいかもしれませんね「Admin Menu Editor」プラグインオススメですw) 5,「設定」>「カスタムフィールドテンプレート」から、投稿に付加する情報入力画面を作成する。(原材料名として「りんご」などを選択できるチェックボックスやラジオボタン、もしくはセレクトメニューなど) で、PHP一行も書かずに下準備完了w 今度は記事を表示する方で、こっちはPHPガリガリ書いていきます。 普通にindex.phpなんかでquery_postsで投稿を呼び出すと通常投稿(製品情報)しか呼び出せませんから、新着情報を呼び出す部分では記事を取り出す部分にWP_Queryを利用してパラメータで「『whatnew』の投稿だけ呼び出すんだよ」ってループを書いてあげます。 これで終了です。 原材料別の検索も簡単で、まずはリスト製品情報を表示できるリストページを固定ページででも作成(便宜上「fruit-archive.php」とします)して、上の5の段階で足したフィールド名を「fruit_kind」としたなら、GETで「http://[ドメイン]/[固定ページ名]?fruit_kind=りんご」って呼び出します。 その固定ページでのループ作成で$_GET["fruit_kind"]を利用して投稿情報を呼び出すWP_Queryを書いておいてあげればいいですね。 ちょっと長くなりましたが流れとしてはこんな感じです。
yukiko

2017/10/31 14:20

詳しくご説明いただき、ありがとうございます。以前、サンプルサイトを作ったときに、カスタムフィールドとか一回は練習したのですが、使わないと忘れますね;; カスタムポストとカスタムフィールドについてご説明いただいていますが、そう、そうなんです。どっちがどっちかよくわかっていなかったというか忘れちゃってたというか…。 書いていただいた情報をもとに、構成などよく考えてみたいと思います。 大変助かりました。ありがとうございますm(__)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問