programing

Wordpress REST API에서 카테고리/태그 목록을 검색하는 방법

copyandpastes 2023. 3. 27. 22:30
반응형

Wordpress REST API에서 카테고리/태그 목록을 검색하는 방법

Wordpress JSON Rest API에서 카테고리 목록을 얻는 방법을 아는 사람 있나요?현재 API는 카테고리 목록 검색을 지원하지 않는 것 같습니다(XML-RPC는 지원).

http://developer.wordpress.com/docs/api/

WP REST API 페이지에 따라 http://example.com/wp-json/wp/v2/categories에 접속할 수 있습니다.이것은 Rest API의 v2에 추가된 것일 수 있지만 확실하지 않습니다.

편집: 2019년 8월 현재 보안상의 문제로 JSON API 플러그인을 사용할 수 없습니다.

나는 내 워드프레스 사이트에서 안드로이드 앱을 만들려고 했다.JSON API 덕분에 가능했지만 실제 헤드레이스를 얻을 수 있었습니다.요청 구문에 대한 문서가 없습니다.

2시간의 조사 끝에, 나는 마침내 무언가를 찾아냈다.첫 번째로 알아야 할 것은 요청 모드에는 다음 3가지 유형이 있습니다.

1. 암묵적 모드

JSON 쿼리에서 빈 값이 아닌 "json=1"을 사용합니다.예:

2. 명시적 모드

JSON 쿼리는 알려진 문자열 값(예: "json=get_backet_post")을 사용합니다.예:

3. 퍼멀링크 모드

JSON 쿼리는 없지만 "/api/get_recent_post" 요청에는 사용자 친화적인 permalink가 사용됩니다.예:

또한 카테고리를 나열하기 위한 구문은 다음과 같습니다.

http://blog.example.com/?json=get_category_index

기타 중요한 기본 요구는 다음과 같습니다.

  1. http://blog.example.com/?json=get_tag_index(태그 목록을 가져오려면)
  2. http://blog.example.com/?json=get_author_index(작성자 목록을 가져오려면)
  3. http://blog.example.com/?json=get_page_index(페이지 목록을 가져오려면)
  4. http://blog.example.com/?json=get_date_index(날짜 목록을 가져오려면)

자세한 내용은 이 링크를 참조하십시오.나처럼 워드프레스 출신이 아닌 사람의 시간을 절약해 주길 바란다.

현재 버전의 Wordpress 4.9.8에서는 보통 다음과 같이 내장 API를 사용하여 카테고리를 가져올 수 있습니다.

http://www.example.com/wp-json/wp/v2/categories

다만, 적어도 부모 카테고리와 자녀 카테고리를 사용하고 있는 경우는, 모든 카테고리를 취득할 수 없는 버그가 있는 것 같습니다.

모든 카테고리를 올바르게 취득하기 위해 워드프레스 설치에 작은 PHP 스크립트를 추가했습니다.

<?php

/** Make sure that the WordPress bootstrap has run before continuing. */
require( dirname(__FILE__) . '/wp-load.php' );

// Redirect to https login if forced to use SSL
if ( force_ssl_admin() && ! is_ssl() ) {
    if ( 0 === strpos($_SERVER['REQUEST_URI'], 'http') ) {
        wp_safe_redirect( set_url_scheme( $_SERVER['REQUEST_URI'], 'https' ) );
        exit();
    } else {
        wp_safe_redirect( 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
        exit();
    }
}

header('Content-Type: application/json');
echo json_encode(get_categories());

주의:

테스트의 목적으로는, 다음의 점에 주의해 주세요.get_categories- 함수는 적어도1개의 문서(예:?)와 이미 관련되어 있는 문서만 반환합니다.

Jetpack에서 제공하는 JSON API를 사용하고 있다면 운이 없을 수 있습니다.API 문서(자동 업데이트된다고 주장하는 것)를 보면 카테고리 목록을 얻을 수 있는 참조가 없습니다.그러나 도움이 된다면 각 카테고리에 대한 정보를 얻을 수 있습니다.

방금 http://public-api.wordpress.com/rest/v1/sites/$site/categories에 접속했는데 아무것도 안 나왔어요.미안하다.

http://developer.wordpress.com/docs/api/

$args = [
    'taxonomy' => 'category',
    'hide_empty' => 0,
    'parent' => 0
];

function _get_child_terms( $items ) {
    foreach ( $items as $item ) {
      $item->children = get_terms( 'category', array( 'child_of' => $item->term_id, 'hide_empty' => 0 ) );
      if ( $item->children ) _get_child_terms( $item->children );
    }
    return $items;
}

$terms = _get_child_terms( get_terms( $args ) );
echo json_encode( $terms );

편집 : 2019년 8월 현재 보안상의 이유로 JSON API 플러그인은 종료되었습니다.따라서 이 답변은 권장되지 않습니다.

마지막으로 실행 가능한 단계:

  1. wordpress 플러그인 설치:JSON API 워드프레스 플러그인 JSON API
  2. 사용하다get_category_indexapi, 형식은 다음과 같습니다.http://www.example.com/api/get_category_index

응답 카테고리를 취득할 수 있습니다.

{
    "status": "ok",
    "count": 332,
    "categories": [{
        "id": 4637,
        "slug": "soft_360",
        "title": "360",
        "description": "",
        "parent": 4618,
        "post_count": 2
    }, {
        "id": 4498,
        "slug": "amazon",
        "title": "Amazon",
        "description": "",
        "parent": 3390,
        "post_count": 29
    }, {
    ......
    }, {
        "id": 860,
        "slug": "default_classification",
        "title": "\u9ed8\u8ba4\u5206\u7c7b",
        "description": "",
        "parent": 17,
        "post_count": 3
    }]
}

자세한 내용은 공식 문서를 참조하십시오.JSON API - WordPress Plugins

이거 먹어봐<?php echo get_the_category_list(); ?>

언급URL : https://stackoverflow.com/questions/20158417/how-to-retrieve-a-list-of-categories-tag-in-wordpress-rest-api

반응형