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

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

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

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

PHP

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

3回答

2213閲覧

webapiのカスタム投稿

uverworld101nm

総合スコア172

WordPress

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

PHP

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

2クリップ

投稿2016/07/08 12:39

編集2016/07/12 09:12

WordpressにおいてWEBAPIをタイトル、本文、カスタムフィールドを駆使して店舗毎のデータを格納したいのですが、つまずいています。
参考書Wordpressプラグイン&Webapi活用ガイドブックを使っています。この参考書によると、「wordpressにおいてwebapiを使う場合は、カスタムフィールドを使って記事ごとにリクエストパラメータを使い分け、phpのコードは、記事を育成するテーマテンプレートを使います」と書いてあります。
この参考書の通りにカスタムフィールドの値(ぐるなびapiのリクエストパラメータのprefです)を取得するためにテンプレートタグのpost_customを使うことはわかりましたが、そこからの先がわかりません。カスタムフィールドの名前と値がありますが、それぞれ何を入れればいいかわかりません。例えば、PREF12の値を取得したいとき(リクエストパラメータは$pref=post_custom('PREF');と書きました)、名前にPREF、値に12と書けばいいのですか?参考書の通りだとそう書きます。しかし反応はしません。
また、phpのコードは記事を育成するテーマテンプレートを使いますとありますが、投稿ページに表示するために投稿ページを作成するsingle.phpに作成したphpコードを挿入しても作成したコードが表示されません。テーマ名はtwentyfifiteenです。(ちなみに作成したphpコードは今まで固定ページで表示してきました)
どうすればカスタムフィールドを使って記事ごとにリクエストパラメータを使い分けることができますか?またどうやったらphpのコードは記事を育成するテーマテンプレートを使えるようになるのですか?
※補足
箇条書きに書いて欲しいと指摘があったので箇条書きにします。
・やりたいことは、wordpressでwebapiを利用したサイトを作りたいです。また今まで固定ページで表示してきましたが(下記)、今後は投稿ページにそれも口コミフォームを実装して表示したいです。

PHP

1<?php 2/* 3Template Name: 固定ページの新規テンプレート1 4*/ 5?>

・この参考書によると、webapiをwordpressで利用するにはカスタムフィールドを利用するとのことでカスタムフィールドについて質問しました。なぜなら、カスタムフィールドを利用することで表示する情報を記事毎に使い分けることができるからです。つまり、一つ一つの店舗を記事毎に収納したいです。
・リクエストの結果は保存です。
・「記事を育成するテーマテンプレート」とは僕の場合は投稿ページを作成するsingle.phpです。
・書籍の情報が古いところがあるので全部正しいとは言えません。
・書いたリクエストパラメータはこれです。post_customを使うとのことでprefに書きました。

PHP

1<?php 2$apikey='私のid'; 3$format='xml'; 4$offset='offset'; 5$hit_per_page='50'; 6$pref=post_custom('PREF'); 7$url ='http://api.gnavi.co.jp/RestSearchAPI/?keyid=' . $apikey . '&format=' . $format . '&offset=' . $offset . '&pref=' . $pref . '&hit_per_page=' . $hit_per_page; 8 9 $xml = simplexml_load_file( $url );

僕の説明が下手なので、写真を掲載します。
こういうことはどうやったらできるのですか?

イメージ

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

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

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

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

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

harashow1701

2016/07/09 00:58 編集

コードをまずは載せてみては?必要に応じて画面のキャプチャー画像も。
harashow1701

2016/07/09 01:00

著者にtwitterとかブログでコンタクト取れるなら、直接質問してみるのも良いかも。
退会済みユーザー

退会済みユーザー

2016/07/09 07:59

素朴な疑問なのですが、質問者さんのスキルセットとして、Web API など使わず、極々普通に WordPress のオリジナルのテーマ(ブログサイトとか)をゼロから作成することはできるのでしょうか?質問内容や回答への質問をみていると、WordPress を全く理解していない、オリジナルテーマをゼロから作成できるスキルを持っていないように感じるのですが・・・。もしそうであれば、WordPress の基礎から勉強された方がよいと思います。
guest

回答3

0

offsetのパラメータに渡す値は文字列ではなく数字です。

あと、prefにpost_custom("PREF")の結果を渡してますが、カスタムフィールドにPREFというフィールド名のカスタムフィールドはちゃんと存在してるのでしょうか?

投稿2016/07/09 04:38

harashow1701

総合スコア854

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

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

uverworld101nm

2016/07/09 04:47

カスタムフィールドにPREFというフィールド名のカスタムフィールドが存在していません。
harashow1701

2016/07/09 05:01

post_custom("PREF")はカスタムフィールドの中からフィールド名がPREFの値を取得するという処理を行っているものです。
uverworld101nm

2016/07/09 05:02

今確認したところ、出来ました。 しかし、カスタムフィールドの次に何をすればいいか分かりません。
harashow1701

2016/07/09 05:10 編集

何ができたの? そして次の小さなステップとして何がしたいの? 次に何をしたら良いかわからないと言われても、こっちは次に何をしたいと思ってるのかもわからんし、答えようがないよね。
uverworld101nm

2016/07/09 05:11

カスタムフィールドの値にPREFが出てきました。
uverworld101nm

2016/07/09 05:12

作成したphpコードを投稿ページに表示するにはどうすればいいですか? カスタムフィールドの値を出しても表示されないので
harashow1701

2016/07/09 05:52

では最初のステップとして、学習用に別ブログを立ち上げ、投稿ページのタイトルと本文を画面に表示するコードを調べながら書いてきてください。 それが出来たら、そのコードを貼ってください。 次に投稿ページにカスタムフィールドを設けて、投稿済みの記事のカスタムフィールドに値を入力し、カスタムフィールドに入力されている値が画面に表示されるように最初のステップで作成したコードに編集を加えてきてください。 では、スタート。
uverworld101nm

2016/07/09 13:47

すみません、カスタムフィールドの値にPREFが出てきましたと書きましたが今確認したところカスタムフィールドの値からPREFが消えてしまいました。バグかもしれませんが、post_customを使えばカスタムフィールドの値にPREFが表示されるのですか?
harashow1701

2016/07/09 17:20

そんなことより、最初のステップをクリアしてきて下さい。
uverworld101nm

2016/07/12 09:10

作成したいことの写真を掲載します。
harashow1701

2016/07/12 09:45

そんなことより最初のステップをクリアしたら、そのコードを貼ってください。
uverworld101nm

2016/07/12 15:39

すみません。カスタム投稿はsingle.phpにコードを書いたらできました。
guest

0

説明が長い割に「何がやりたくて」、「何をしたが」、「何ができなかった」のかがわかりません。
あなたが作ろうとしているサイトでやりたい事を1行20文字の箇条書きにしてください。

・書籍にやり方が載っているなら、それが一番詳しくて正しい方法です。
・WebAPIにカスタムフィールドの入力を付加情報としてリクエストを送りたいんですか?
・リクエストの結果はどうするのか、保存?表示?
・「記事を育成するテーマテンプレート」って具体的に何?
・このままだとユーザーにカスタムフィールドを入力してもらいWebAPIの結果を表示することしかできないですよ。

投稿2016/07/08 18:52

編集2016/07/08 19:03
yona

総合スコア18155

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

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

harashow1701

2016/07/09 01:03

回答じゃないなら回答欄に書かなくて良くない?ノイズにしかならん。
uverworld101nm

2016/07/09 02:50

harashow1701さん、yonaさん、僕の説明がわかりづらくてすみません。
yona

2016/07/09 04:17

PREFに渡すのはPREF12ですね。 また、レスポンスでエラーコード等は帰ってきていませんか?
uverworld101nm

2016/07/09 04:50

post_custom(”PREF12”)と書くのですか?
uverworld101nm

2016/07/09 05:21

また、phpコードを投稿ページに表示する方法が分かりません
guest

0

ベストアンサー

ご存知かもしれませんが、ぐるなびの公式 WordPress プラグインを参考にされてはいかがですか?やりたいこのとの殆どがソースコードに記載されていると思いますよ?

WordPress のライセンスは GPL で、WordPress のテーマやプラグインの PHP ファイルも GPL ですので、参考元(パクり元)のソースコードの著作権情報をしっかり書いておけば、自身のプログラムに組み込むことが可能です。ただし、CSS や JS、画像は GPL ではない事が多いので注意してください。ライセンス守らないと・・・。

Gurunavi Restaurant Search

投稿2016/07/09 08:16

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

uverworld101nm

2016/07/09 13:50

質問があります。 プラグインを参考に作成するということは、post_customは使わないんですよね?
退会済みユーザー

退会済みユーザー

2016/07/09 14:26

post_custom を使う or 使わないは、質問者さんの設計次第ですので、好きにしていただければと。ただ、上で紹介したプラグインには、ぐるなび API の使い方ノウハウが詰まってると思いますよ。 それと、分かっているとは思いますが、post_custom はデータベースに保存されている値(カスタムフィールドの値)を取得する関数であって、データベースに値を保存(カスタムフィールドを保存)する関数ではありません。つまり、データベースにデータがなければ、post_custom を一生懸命に利用しても無意味ということになります。 私の回答はあくまでも助言ですので、無視するか参考にしてみるかは、質問者さん次第です。これ以上は、回答しかねますのでご了承ください。
harashow1701

2016/07/09 18:13

どうでもいいですけど、post_customっていう関数名ひどいですよね。名前からしてカスタムフィールドに値をセットするようにしか捉えられないし。
退会済みユーザー

退会済みユーザー

2016/07/19 04:42

post_custom を使っているのはあまりみかけないですね。基本 get_post_meta ですかね。もしくは $post->hoge ですかね(hoge = カスタムフィールド名)。
uverworld101nm

2016/08/06 04:07

ご回答ありがとうございます。 助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問