【问题标题】:Wordpress API REST format JSON, GET Featured Image with 1 callWordpress API REST 格式 JSON,通过 1 次调用获取特色图片
【发布时间】:2016-11-28 10:36:16
【问题描述】:

我正在使用 API REST 在 Android 中开发一个应用程序,以从我的 wordpress 页面获取数据。我想在我的应用中查看帖子的图片、标题和描述。

Wordpress 以这种格式返回媒体:

"author": 5,
"featured_media": 1836,
"comment_status": "open",
"ping_status": "open",
"sticky": false,
"format": "standard",
"meta":

GET 服务只给我媒体 ID,我想要源 URL。我必须调用“PAGEURL/wp-json/wp/v2/media/IDMEDIA”来获取源网址。这太低效和太低了。如何通过 1 次调用 GET 服务来获取源 URL?我尝试编辑插件,但它不起作用。

这是从 Wordpress 中获取数据的函数

public class FeedTask extends AsyncTask<String, Void, ArrayList<JSONArray>>{

    private OnFeedListener listener;

    public FeedTask(OnFeedListener listener){
        this.listener=listener;
    }

    @Override
    protected ArrayList<JSONArray> doInBackground(String... params) {
        ArrayList<JSONArray> arrays=new ArrayList<>();
        String url=params[0];
        OkHttpClient client=new OkHttpClient();
        Request.Builder builder=new Request.Builder();
        Request request=builder.url(url).build();
        try {
            Response response=client.newCall(request).execute();
            String json=response.body().string();
           try{
               JSONArray array= new JSONArray(json);
               //Array de Imágenes
               JSONArray arrayImages=new JSONArray();
               for(int i=0; i<array.length(); i++) {
                   String urlImage=("http://PAGEURL/wp-json/wp/v2/media/")+array.optJSONObject(i).optString("featured_media");
                   request=builder.url(urlImage).build();
                   response=client.newCall(request).execute();
                   json=response.body().string();
                   arrayImages.put(new JSONObject(json));
               }
               arrays.add(array);
               arrays.add(arrayImages);
               return arrays;
            } catch (JSONException e) {
                e.printStackTrace();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute(ArrayList<JSONArray> array) {
        super.onPostExecute(array);
        if(array==null){
            return;
        }
        if(listener!=null){
            listener.onFeed(array);
        }
    }
}

【问题讨论】:

    标签: android json wordpress rest get


    【解决方案1】:

    一键获取精选图片。

    您不应该编辑插件,您的编辑将在更新时被覆盖。

    您应该使用_embed 参数来允许显示特色图片

    http://example.com/wp-json/wp/v2/posts?&_embed=true
    

    数据将以 _embedded 的形式返回给您,其中包含一个对象

    "wp:featuredmedia" => [ "media_details" => sizes => { thumbnail, medium, full } ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-23
      • 1970-01-01
      • 1970-01-01
      • 2016-06-17
      相关资源
      最近更新 更多