WordPressで外部APIを使用しますか?


9

WordPressのウェブサイトを持っているクライアントがいて、彼はそれを拡張して新しい機能を追加したいと考えています。これらの機能は、私が既に行ったWebサイト(データベースに対する一種の検索エンジン、いくつかのフィルター付き)に含まれており、新しい拡張機能の下にあります。

私が計画していることは、私のデータベースのすべての検索機能を使用して、私のWebサイトのJSON APIを作成し、WordPress WebサイトにこのAPIを利用させることです。その後、検索結果を表示するビューを作成するだけで済みます。

問題は、WordPressがまったくわからないこと(私にとっては、管理パネルから記事を追加できる場所です...)で、サーバー側の独自のコードをどのように記述することができるかわかりません。私はGoogleで検索して「プラグイン」と呼ばれるものを見つけましたが、それが可能かどうか、他のサードパーティがコードを使用する必要がないため、それが最も簡単な方法であるかどうか疑問に思っています。パーティー。PHPファイルを追加するためにWordPressインストールをハッキングすることが可能である場合、必要なコード(同じWordPress cssを使用したビュー)をコーディングする方が簡単ですが、可能かどうかわかりません。


具体的に何をしようとしているのか、jsonフィードをワードプレスに読み込み、データをデータベースに挿入し、XML-RPCを介して公開し、より明確にすることを試みます。
Wyck

jsonフィードを読み取ります。たとえば、ワードプレスサイトには検索フォームが含まれている必要があります。送信すると、APIへのget呼び出しが実行され、APIはjsonでオブジェクトを返し、これらの結果をワードプレスサイトのページに出力します
tahir

1
@tahir私はまさにこれをやろうとしている。目標を達成した方法を共有できますか?
SAHM 2014

回答:


9

あなたを助けたり混乱させたりするかもしれないWordPress開発の短い入門書:

心に留めておくべき主なこと:それはすべて単なるPHPです。また、WordPressのコアファイルを編集しないでください。後で新しいバージョンに更新するときに問題が発生します。編集する必要があるコードは、プラグインとテーマのコードのみです。

既存のページに何かを追加するだけでよい場合は、適切なテーマファイルを編集するだけで十分です。ただし、高度な処理を行う必要がある場合(および特定のURLなどの追加の「ビュー」を追加することは、WordPressではより高度です)、WordPressの起動プロセスの早い段階で読み込まれる場所にコードを追加する必要があります。 。

これは、WordPressが常にURLに基​​づいて投稿クエリを行うためです。に移動すると/category/banana/、カテゴリの投稿を照会しbanana、ループして表示するだけの正しいテンプレートファイルをロードします。ただし、にアクセスすると/custom-view/、WordPressはおそらく投稿を見つけず、404テンプレートをロードします-簡単に回復する方法はありません!

一部の人々は、「スタブページ」を作成することによってこれを解決します。コンテンツだけが重要ではないWordPressでページを作成します。テンプレートだけが重要です。これはハッカですが、機能します。クリーンな方法は、追加の書き換えルールを定義することです。これにより、WordPressに/custom-view/有効なURLであることが通知されますが、他の何かがそこで発生するはずです。

これを行うは、コアのWordPressシステムにフックする必要があります。ここで重要な部分はあるにフック、ない変更します。WordPressにはアクションフィルターがあります。アクションは単なる通知です(「ねえ、現在<head>タグを書いています。何か追加しますか?」)。フィルターを使用すると、変数を変更できます(これは投稿のタイトルです。変更する場合は、新しい値を返します)。もちろん、今の秘訣は、どのアクションとフィルターを使用すべきかを知ることです。これは、選択した方法(スタブページまたは新しい書き換えルール)に依存するため、ここでは詳しく説明しません。

プラグインファイルまたはテーマのfunctions.phpファイルで、使用するアクションとフィルターを定義します。これらは、WordPressの起動中にロードされるため、メインのクエリが実行される前などに特別です。プラグインファイルは、wp-content/plugins/ディレクトリに置かれた単なるPHPファイルであり、特別なヘッダーが付いているので、WordPressがその名前を読み取って管理領域に表示できるため、プラグインを有効または無効にできます(プラグインをディレクトリに残して一時的に残すことができます)無効にします)。


2

基本

プラグインとテーマの基本を回避する必要があります。つまり、ワードプレスのコア機能に追加されたものです。通常、「プラグイン」は機能に関するものであり、「テーマ」は「ビュー」に関するものです。また、「プラグインAPI」について少し読むこともできます

JSON

コアに組み込まれているjson2スクリプトを使用して、「安全な」APIを提供することができます。

JSONの例

残りは次のようなものになります:

$response = json_encode( array( 
     'data' => $your_output 
) );
header( "Content-Type: application/json" );
echo $response;

XML Rpc

コーデックスには、「XML Rpc」についても記載されています

HTTP API

別の可能性はhttpリクエストかもしれません。リンクの下部にあるリファレンスを必ずお読みください。


Webhook

これは、消費可能なAPI を提供することに関するものであるため、追加です。説明はこちら。また、この作業を行うHookPressというプラグインもあります。著者からのスライドもいくつかあります。


1

PHPを知っていると思いますか?それとも障壁ですか?

基本的に、WordPressのプラグインは、WordPressコアによって認識および処理されるようにPHPコードをパッケージ化するための慣例です。機能ではなくフォーマットです。

実際の機能については、ほとんど任意のPHPを実行できますが、互換性と信頼性のためにWPのAPIを利用することをお勧めします。

WPのコンテキストでコードを考えますinclude(技術的には)。そこから、WordPressに固有のものに書き換えられる量を決定するのは、ニーズとリソースの範囲です。


0

はい、可能です。

ほとんどのプラグインは、いわゆるフックを通じて作成されます。

例えば:

add_action("hook", "function")

そのフレームワークがどのように機能するかがわかったら、プラグインを自分で構築するのは非常に簡単です。動作します...知識の最も広い場所ですが(phpのように、最も組織化されているわけではありませんが)、それを使って自分自身を農業化することをお勧めします。 net)はwordpress codexです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.