{"id":16968802,"url":"https://github.com/reactmore/wordpress-rest-api-client","last_synced_at":"2026-04-13T23:04:11.294Z","repository":{"id":62533874,"uuid":"389634170","full_name":"reactmore/wordpress-rest-api-client","owner":"reactmore","description":"Wordpress Rest Api Client ","archived":false,"fork":false,"pushed_at":"2021-08-19T13:01:27.000Z","size":138,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-27T18:31:41.476Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/reactmore.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-07-26T13:01:41.000Z","updated_at":"2021-08-19T13:01:29.000Z","dependencies_parsed_at":"2022-11-02T16:01:00.046Z","dependency_job_id":null,"html_url":"https://github.com/reactmore/wordpress-rest-api-client","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactmore%2Fwordpress-rest-api-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactmore%2Fwordpress-rest-api-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactmore%2Fwordpress-rest-api-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactmore%2Fwordpress-rest-api-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reactmore","download_url":"https://codeload.github.com/reactmore/wordpress-rest-api-client/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244852118,"owners_count":20521151,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-14T00:22:57.561Z","updated_at":"2026-04-13T23:04:11.265Z","avatar_url":"https://github.com/reactmore.png","language":"PHP","readme":"# wordpress-rest-api-client\n\n\u003e A Wordpress REST API client for PHP\n\n## Installation\n\nThis library can be installed with [Composer](https://getcomposer.org):\n\n```text\ncomposer require reactmore/wordpress-rest-api-client\n```\n\n## Usage\n\nExample:\n\n```php\nrequire 'vendor/autoload.php';\n\n$client = new Reactmore\\WordpressClient\\Wordpress(new Reactmore\\WordpressClient\\Request\\GuzzleAdapter(new GuzzleHttp\\Client()), 'http://domain.com');\n\n// iF WP API DISABLE YOU NEED TO PASS AUTH\n// $client-\u003esetCredentials(new Reactmore\\WordpressClient\\Auth\\WpBasicAuth('user', 'password'));\n\n// Argument 1 id default Null\n// Argumend 2 Array default Null\n$posts = $client-\u003eposts()-\u003eget(1, ['params' =\u003e 'Key']);\n\necho '\u003cpre\u003e';\nprint_r($posts);\necho '\u003c/pre\u003e';\n```\n\nResponse Success:\n\n- status = status name\n- code = status Code\n- data = callback data from wordpress\n- X-WP-TOTAL = count all post on current result\n- X-WP-TOTAL-PAGE = count all page on current result\n\n```Array\nArray\n(\n\n    [status] =\u003e success\n    [code] =\u003e 200\n    [data] =\u003e Array(\n        \n        id =\u003e\n        slug =\u003e \n        xxxx\n    )\n    [X-WP-TOTAL] =\u003e 6909\n    [X-WP-TOTAL-PAGE] =\u003e 70\n\n)\n```\n\nResponse Error:\n\n- status = status name\n- code = status Code\n- error = error message\n\n```Array\nArray\n(\n\n    [status] =\u003e failed\n    [code] =\u003e 400\n    [error] =\u003e Array(\n        \n        message =\u003e\n       \n    )\n \n\n)\n```\n\n## Addon Custom Route\nInsert On Functions Your Theme \n```php\nfunction custom_api_get_all_posts()\n{\n    register_rest_route('custom/v1', '/all-posts', array(\n        'methods' =\u003e WP_REST_Server::READABLE,\n        'callback' =\u003e 'custom_api_get_all_posts_callback'\n    ));\n}\n\n// custom Route API \nfunction custom_api_get_all_posts_callback(WP_REST_Request $request)\n{\n   \n    $posts_data = array();\n    \n    $paged = $request-\u003eget_param('page');\n    $paged = (isset($paged) || !(empty($paged))) ? $paged : 1;\n    \n    $author = $request-\u003eget_param('author');\n    $author = (isset($author) || !(empty($author))) ? $author : '';\n    \n    $search = $request-\u003eget_param('search');\n    $search = (isset($search) || !(empty($search))) ? $search : '';\n    \n    $after = $request-\u003eget_param('after');\n    $after = (isset($after) || !(empty($after))) ? $after : '';\n    \n    $before = $request-\u003eget_param('before');\n    $before = (isset($before) || !(empty($before))) ? $before : '';\n    \n    \n    \n   \n    $query = new WP_Query(\n        array(\n            's' =\u003e $search,\n            'author' =\u003e $author,\n            'paged' =\u003e $paged,\n            'post__not_in' =\u003e get_option('sticky_posts'),\n            'posts_per_page' =\u003e 10,\n            'post_type' =\u003e array('post'),\n            'date_query'          =\u003e array(\n                //set date ranges with strings!\n                'after' =\u003e $after,\n                'before' =\u003e  $before,\n               \n            ),\n            'orderby' =\u003e 'date',\n            'order'   =\u003e 'DESC'\n           \n        )\n    );\n\n    // if no posts found return \n    if (empty($query-\u003eposts)) {\n        return array();\n    }\n\n    // set max number of pages and total num of posts\n    $max_pages = $query-\u003emax_num_pages;\n    $total = $query-\u003efound_posts;\n\n    $posts = $query-\u003eposts;\n\n    // prepare data for output\n    $controller = new WP_REST_Posts_Controller('post');\n\n    foreach ($posts as $post) {\n\n        $response = $controller-\u003eprepare_item_for_response($post, $request);\n        $post_data = $controller-\u003eprepare_response_for_collection($response);\n        $post_thumbnail = (has_post_thumbnail($post_data['id'])) ? get_the_post_thumbnail_url($post_data['id']) : null;\n\n        $data[] = (object) array(\n            'id' =\u003e $post_data['id'],\n            'date' =\u003e $post-\u003epost_date,\n            'author' =\u003e array(\n                'id' =\u003e $post-\u003epost_author,\n                'name' =\u003e get_the_author_meta('user_nicename', $post-\u003epost_author),\n             ),\n            'type' =\u003e $post-\u003epost_type,\n            'title' =\u003e $post-\u003epost_title,\n            'url' =\u003e get_permalink($post_data['id']),\n            'content' =\u003e $post_data['excerpt']['rendered'],\n            'featured_img_src' =\u003e $post_thumbnail,\n            'meta' =\u003e get_post_meta($post_data['id'], '', '')\n\n        );\n    }\n\n    // set headers and return response      \n    $response = new WP_REST_Response($data, 200);\n\n    $response-\u003eheader('X-WP-Total', $total);\n    $response-\u003eheader('X-WP-TotalPages', $max_pages);\n\n    return $response;\n}\n```\n\nParameter :\n- page = page your data\n- author = filter by author id or name\n- search = search post like search on API Post v2\n- after and Before = Filter date Range better use Format d-f-y on query string or string on backend logic  \n\n## Screenshoot\n\n![Backend](https://raw.githubusercontent.com/reactmore/wordpress-rest-api-client/master/preview.jpg)\nImplementations Paginations\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freactmore%2Fwordpress-rest-api-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freactmore%2Fwordpress-rest-api-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freactmore%2Fwordpress-rest-api-client/lists"}