Android 앱에서 WordPress에서 게시물 가져오기
Android 개발은 처음이라 WordPress 웹사이트에서 투고 카테고리와 투고를 간단하게 표시할 수 있는 앱을 만들려고 합니다.누구 좀 도와주세요.
WordPress에서 일종의 REST API를 생성하여 Android HTTP 요청에 대한 JSON 응답을 반환합니다.그러기 위해서는 먼저 Android의 경우 다음 게시물을 참조하십시오.
그런 다음 서버 측(WordPress)에 API 요청을 처리하기 위한 플러그인을 추가해야 합니다.이를 수행하려면 api-endpoint라는 파일을 만듭니다.php는 wp-content/plugins에서 다음과 같이 사용합니다.
<?php
class API_Endpoint{
/** Hook WordPress
* @return void
*/
public function __construct(){
//Ensure the $wp_rewrite global is loaded
add_filter('query_vars', array($this, 'add_query_vars'), 0);
add_action('parse_request', array($this, 'sniff_requests'), 0);
add_action('init', array($this, 'add_endpoints'), 0);
}
/**
* Add public query vars
* @param array $vars List of current public query vars
* @return array $vars
*/
public function add_query_vars($vars){
$vars[] = '__api';
return $vars;
}
/**
* Add API Endpoints
* Regex for rewrites - these are all your endpoints
* @return void
*/
public function add_endpoints(){
//Get videos by category - as an example
add_rewrite_rule('^api/videos/?([0-9]+)?/?','index.php?__api=1&videos_cat=$matches[1]','top');
//Get products - as an example
add_rewrite_rule('^api/product/?([0-9]+)?/?','index.php?__api=1&product=$matches[1]','top');
}
/** Sniff Requests
* This is where we hijack all API requests
* If $_GET['__api'] is set, we kill WP and serve up rss
* @return die if API request
*/
public function sniff_requests(){
global $wp;
if(isset($wp->query_vars['__api'])){
$this->handle_api_request();
exit;
}
}
/** Handle API Requests
* This is where we handle off API requests
* and return proper responses
* @return void
*/
protected function handle_api_request(){
global $wp;
/**
*
* Do your magic here ie: fetch from DB etc
* then get your $result
*/
$this->send_response($result);
}
/** Response Handler
* This sends a JSON response to the browser
*/
protected function send_response(array $data){
header('content-type: application/json; charset=utf-8');
echo json_encode($data);
exit;
}
}
new API_Endpoint();
그런 다음 WordPress 관리 인터페이스를 통해 API_Endpoint 플러그인을 활성화하고 영구 링크를 플러시하는 것을 잊지 마십시오.
그 후 다음 API 요청을 할 수 있습니다.
http://example.com/api/videos/12
또는
http://example.com/api/product/4
편집
예를 들어 WordPress 카테고리를 참조하려면 http://codex.wordpress.org/Function_Reference/get_categories를 참조하십시오.
그레그라가 도와줘서 고마워해결책을 찾았어요워드프레스 사이트에 WordPress 플러그인 JSON API를 설치하고 이 링크 http://www.learn2crack.com/2013/10/android-json-parsing-url-example.html를 Android App의 코드에 참조했습니다.
워드프레스에서 안드로이드 앱으로 데이터를 돌려보낼 경우 JSON APi 플러그인을 사용하는 것은 매우 좋지 않습니다만, 실제로 json 쿼리의 결과를 확인하셨습니까?
확인 후 브라우저에 www.yourwebsite.com/api/get_posts/ 를 입력합니다.
무엇을 얻을 수 있는지 확인합니다.이것은 워드프레스 대시보드에서 모든 투고 또는 디폴트로 설정한 투고 수를 조회합니다.그리고 그 투고에 관한 모든 데이터를 json 문자열로 전송합니다.저는 10개의 투고를 조회하려고 했습니다.json 문자열의 사이즈는 약 150KB imagine이었습니다.단 10개의 투고만 해도 사용자는 10개의 투고를 얻을 수 있습니다.
솔루션:서버측의 투고에 문의해, 사용하는 데이터(제목, 섬네일, 발췌 등)만을 Android 앱에 반송해 주세요.
어떻게 하는 거죠?
1-word press dir에 php 파일을 만들어 접근할 수 있도록 합니다.
2- Android에서 게시된 값을 수신합니다(이 값은 사용자가 원하는 쿼리 유형, 예를 들어 게시 수 및 게시 유형을 알 수 있도록 Android에서 설정합니다).
3- 파트 2의 쿼리 엔티트에 따라 워드프레스 기능을 사용하여 게시물을 쿼리합니다.
4- 사용하려는 데이터만 사용하여 자체 json 문자열을 생성합니다.
5 - json 문자열을 Android에 에코백합니다.
10개의 투고 제목과 썸네일 링크만 원하는 경우 json 문자열 크기는 약 2KB입니다.
그것이 차이를 낳는다:-)
JSON API Auth를 사용하여 사용자를 등록 및 로그인할 수 있으며 구현 및 사용이 쉽고 빠릅니다.
Wordpress rest api를 사용하려면 Wordpress 4.7 이상을 사용하거나 이전 버전에서 Rest api 플러그인을 설치해야 합니다.그런 다음 워드프레스에서 Permalinks를 설정해야 합니다. 그러면 rest api 엔드포인트가 작동합니다.
크기를 줄이고 출력 json을 커스터마이즈하려면 Rest api filter fields 플러그인을 설치할 수 있습니다. 아래 예를 참조하십시오.
지정된 게시물 수 가져오기
지정된 개수의 투고를 취득하기 위해서, 페이지 단위의 투고 필터를 사용할 수 있습니다.다음 URL은 3개의 게시물만 가져옵니다.http://your-par-url/wp-json/wp/v2/filter?filter[filter_per_page]=3
특정 게시물 가져오기
ID로 특정 투고를 가져올 수 있습니다.http://your-warn-url/wp-json/wp/v2/wp/67
여기 67이 게시물 아이디입니다.
필드 필터링
위의 JSON 데이터에서 보셨듯이 필요 없는 필드가 몇 개 있습니다.따라서 REST API – Filter Fields 플러그인을 사용하여 몇 개의 필드를 필터링할 수 있습니다.예를 들어 게시물의 ID와 제목만 가져오려면 다음 URL을 사용하여 가져올 수 있습니다. http://your-warning-url/wp-json/wp/v2/wp?fields=id,files
먼저 워드프레스에 WordPress Rest API v2를 설치해야 합니다.다음 URL을 통해 블로그의 모든 게시물에 대한 정보를 가져올 수 있습니다.블로그에 대한 모든 정보가 포함된 JSON 응답을 반환합니다.
http://your-blog-url/wp-json/wp/v2/posts
for example http://www.blueappsoftware.in/android/wp-json/wp/v2/posts
이제 이 url을 안드로이드에서 retrofit / balley / http connection을 사용하여 호출할 수 있습니다.복고풍 사용을 제안합니다.Android에서 사용자 정의 UI 디자인을 만들어 블로그 게시물을 표시할 수 있습니다.레퍼런스는, http://www.blueappsoftware.in/android/blog/get-wordpress-post-in-android-app/ 에서 입수할 수 있습니다.http://www.blueappsoftware.in/android/blog/get-wordpress-post-in-android-app/
언급URL : https://stackoverflow.com/questions/21231814/getting-posts-from-wordpress-in-my-android-app
'programing' 카테고리의 다른 글
| 엔티티 프레임워크를 사용한ID 생성 및 자동 증분 방법 (0) | 2023.03.15 |
|---|---|
| AngularJS - 라디오 버튼을 선택한 경우 트리거 (0) | 2023.03.15 |
| JSONObject 요소 업데이트 (0) | 2023.03.15 |
| 테스트 실행 시 스프링 부트 "PSQLException: FATAL: 미안, 너무 많은 클라이언트" (0) | 2023.03.15 |
| 현재 woocommerce 주문 배송 방법 ID에 접속하려면 어떻게 해야 하나요? (0) | 2023.03.15 |