web-dev-qa-db-ja.com

Jsonフィード用にheader.phpなしでユニークなページを作成する

私は2つのWordPressサイトを別々のドメインに置いています。私は私が他のサイトのために使わなければならない1つのサイトのjsonフィードを通してカテゴリー内の最新の投稿を公開する必要があります。 jsonの応答を取得するには、「隠し」URLを押す必要があります。例:/themes/mytheme/json_api.php?cat=news.

このJSONフィードにheader.phpを含まない固有のページを作成し、特定のカテゴリ内の投稿を出力するために必要なコードのみを含めるようにします。このファイルの WP_Query にアクセスするには、何をインポートする必要がありますか?

1
jaysonp

なぜRSSウィジェットを使わないのですか?

1

WordPressをブートストラップしようとしているようです。あなたがしなければならないのはあなたのWordPressルートにあるファイルwp-load.phpを含めることだけです。これにより、ほとんどのWP機能(WP_Queryクラスなど)がカスタムスクリプトで使用可能になります。

include('wp-load.php');

明らかに、インクルードへのパスを調整し、あなた自身のクエリ/出力のものを書く必要があるでしょう。

1
MathSmath

私はあなたが AJAX API を使うことを勧めます。これでWordPress Coreが起動し、$wpdb globalやWP_Queryクラスを含む、期待されるほとんどの機能が提供されます。 WordPressのパーミッションシステムとナンス機能を使うこともできます。

これを機能させるには、別のファイルではなく、スクリプトでコールバック関数を作成し、それをAJAXシステムにフックします。

function ajax_callback_wpse_4870() {
  // your script
}
add_action('wp_ajax_your_callback_hookname','ajax_callback_wpse_4870');
add_action('wp_ajax_nopriv_your_callback_hookname','ajax_callback_wpse_4870');

あなたのJavascriptは/wp-admin/admin-ajax.phpという名前のアクションパラメータでPOSTsからyour_callback_hooknameへ。

フック名が示すように、最初のフックはログインしているユーザー用、2番目はログインしていないユーザー用です。どちらか一方だけが必要な場合は、両方のフックは必要ありません。

1
s_ha_dum