Skip to content

WPRestClient is a PHP library for seamless interaction with WordPress sites via the WordPress RESTful API, simplifying authentication, data retrieval, and content management tasks

License

Notifications You must be signed in to change notification settings

angelxmoreno/WPRestClient

Repository files navigation

Codacy Badge codecov GitHub license Open Source? Yes! PHP Version 7.4+ Maintenance

WPRestClient Logo

a PHP WordPress API Client

WPRestClient is a PHP library for seamless interaction with WordPress sites via the WordPress RESTful API, simplifying authentication, data retrieval, and content management tasks

Features

  • Connect to WordPress sites and authenticate using REST API authentication methods.
  • Retrieve posts, pages, custom post types, categories, tags and other WordPress entities.
  • Create, update and delete posts and pages.
  • Perform advanced queries and filter responses using the power of the WordPress RESTful API.
  • Use the APIClient for low level calls
  • Use Repositories and gain WordPress entity objects
  • Configurable API Prefix
  • Create custom entities or extend the existing ones
  • Create custom repositories for any endpoint

Requirements

PHP 7.4+

Installation

You can install WPRestClient via Composer. Run the following command in your project directory:

composer require angelxmoreno/wprestclient

Usage

  1. Create a new instance of the WPRestClient:

    use WPRestClient\Core\ApiClient;
    
    $client = new ApiClient('https://example.com');
  2. Retrieve a raw array of posts via the client:

    $posts = $client->sendRequest('get','/posts');
    foreach ($posts as $post) {
        echo $post['title']['rendered'];
    }
  3. Retrieve an array PostEntity objects via the PostsRepository:

    use WPRestClient\Repository\PostsRepositor;
    
    PostsRepository::setApiClient($client);
    $posts = PostsRepository::fetch();
    foreach ($posts as $post) {
       echo $post->getTitle();
    }
  4. Create a new Page via the PagesRepository using the RepositoryRegistry: By creating an instance of RepositoryRegistry, you have access to all the registered repositories with the ApiClient already set.

    use WPRestClient\Repository\PagesRepository;
    use WPRestClient\Core\RepositoryRegistry;
    use WPRestClient\Entity\PageEntity;
    
    $registry = new RepositoryRegistry($client);
    $page = new PageEntity(['title' => 'A New Page']);
    $registry->pages()->create($page);
  5. Delete a post via the PostsRepository using the RepositoryRegistry:

    use WPRestClient\Repository\PagesRepository;
    use WPRestClient\Core\RepositoryRegistry;
    use WPRestClient\Entity\PageEntity;
    
    $registry = new RepositoryRegistry($client);
    $post = $registry->posts()->get(123);
    $registry->posts()->delete($post);

For more detailed usage examples and available methods, please refer to the documentation.

Contribution

Contributions are welcome! If you find a bug, have suggestions for improvements, or would like to add new features, please submit an issue or a pull request. Make sure to follow our contribution guidelines

License

WPRestClient is open-source software licensed under the MIT license

Contact

For any questions or inquiries, please contact WPRestClient@gmail.com

Support

For bugs and feature requests, please use the issues section of this repository.

About

WPRestClient is a PHP library for seamless interaction with WordPress sites via the WordPress RESTful API, simplifying authentication, data retrieval, and content management tasks

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages