0

wordpress 用のJSON API プラグインを使用して、構築中の phonegap アプリケーションでサイトのコンテンツを操作できるようにしています。

ただし、サイトの一部のコンテンツは複雑であるため (グラフやスライダーなどを出力するショートコードが原因)、モバイル アプリでの表示には適していません。JSON 出力からショートコードを削除する必要があります。

the_contentワードプレスのフィルターにフックしremove_shortcodeて、必要なショートコードを取り出すことができることがわかりました。しかし、問題は、ブラウザ経由で json の URL にアクセスした場合にのみこれを実行できることです。

たとえば、http://example.com?json=1最近の投稿を返すために使用することがあります。これを URL バーに入力すると、URL を解析し、json=1そこにあると判断してショートコードを取り除くことができます。

jsonただし、モバイル アプリケーションから ajax (JSONP) リクエストを実行しているときに、パラメーターの URL を確認できないように見えるため、ショートコードが削除されていません。JSONP私が信じているリクエストの性質上、ヘッダーが作成されないため、ヘッダーを渡すことさえできません。

ショートコードを削除できるように、モバイル アプリケーションからの JSON 要求をいつ受信したかを把握する方法について、誰かアイデアはありますか?

何かのようなもの

if(is_json()){
//remove shortcodes
}

そして、それが持ち出される前に、Wordpress Stackexchangeでこれを尋ねましたが、役に立ちませんでした

更新:モバイルアプリからのajaxリクエストに使用するコードは次のとおりです

  $.ajax({
                    url: "http://www.example.com/?json=1",
                    dataType: "jsonp",
                    async: true,
                    success: function(result) {
                        app.populate(result)
                    },
                    error: function(request, error) {
                        alert('Network error has occurred please try again!');
                    }
                });
4

2 に答える 2

1

コメントの 1 つに促されて、JSON-API プラグイン ファイルで必要なものを見つけました。

調べてみると、プラグインがコンテンツを取り込んでいる場所を示すjson-api/models/post.php関数があります。set_content_value()ここでは、必要に応じて変更できます。私の場合、Wordpressremove_shortcode()機能で特定のショートコードを削除するために使用しました

于 2014-08-17T22:16:26.903 に答える
0

プラグインがクライアントにコンテンツを提供するときはいつでも remove_shortcode 関数を使用できませんか?

プラグインの名前/URLも教えていただけますか? たぶん、少しのコードでも害はありません。phonegap アプリケーションの API リクエスト コード スニペットを使用していただけませんか?

ありがとう。

于 2014-08-17T18:48:16.280 に答える