madeitbelgium / wordpress-php-sdk
WordPress Laravel PHP SDK
Requires
- php: >=5.6
- guzzlehttp/guzzle: 6.*|7.*
- illuminate/container: *
- illuminate/support: *
- illuminate/validation: *
Requires (Dev)
- friendsofphp/php-cs-fixer: 2.11.*
- mockery/mockery: 0.9
- php-coveralls/php-coveralls: ^2.0
- phpunit/phpunit: 7.*|6.*|8.*
README
安装
在您的 composer.json
中添加此包并更新composer。
"madeitbelgium/wordpress-php-sdk": "^1.2"
或者
composer require madeitbelgium/wordpress-php-sdk
更新composer后,将ServiceProvider添加到config/app.php
中的providers数组。
MadeITBelgium\WordPress\WordPressServiceProvider::class,
您可以使用外观(facade)以缩短代码。将以下内容添加到您的别名中
'WP' => MadeITBelgium\WordPress\WordPressFacade::class,
文档
认证
要使用认证请求,您必须登录到WordPress网站以生成JWT令牌。WordPress默认不支持此功能,您必须安装JWT兼容的插件。此包已与以下插件测试过:https://nl.wordpress.org/plugins/jwt-authentication-for-wp-rest-api/
use MadeITBelgium\WordPress\WordPressFacade as WordPress; $token = WordPress::login($request->get('email'), $request->get('password')); // {'token': '...'}
现在您可以将 $token->token
保存到您的数据库中。
use MadeITBelgium\WordPress\WordPressFacade as WordPress;
WordPress::setAccessToken($token);
应用程序密码
您可以使用新引入的应用程序密码(在WordPress 5.6中)。
$wp = WordPress::setServer('https://www.example.com')
->setUsername('username')
->setApplicationPassword('application password');
与对象交互
用户
WordPress Rest API文档:https://developer.wordpress.org/rest-api/reference/users/
use MadeITBelgium\WordPress\WordPressFacade as WordPress;
$users = WordPress::user()->list();
$result = WordPress::user()->create($data);
$user = WordPress::user()->get($id);
$result = WordPress::user()->update($id, $data);
$result = WordPress::user()->delete($id);
文章
WordPress Rest API文档:https://developer.wordpress.org/rest-api/reference/posts/
use MadeITBelgium\WordPress\WordPressFacade as WordPress;
$users = WordPress::post()->list();
$result = WordPress::post()->create($data);
$user = WordPress::post()->get($id);
$result = WordPress::post()->update($id, $data);
$result = WordPress::post()->delete($id);
自定义文章类型文章
WordPress Rest API文档:https://developer.wordpress.org/rest-api/reference/posts/
use MadeITBelgium\WordPress\WordPressFacade as WordPress;
$users = WordPress::customPost('custom_post_type')->list();
$result = WordPress::customPost('custom_post_type')->create($data);
$user = WordPress::customPost('custom_post_type')->get($id);
$result = WordPress::customPost('custom_post_type')->update($id, $data);
$result = WordPress::customPost('custom_post_type')->delete($id);
标签
WordPress Rest API文档:https://developer.wordpress.org/rest-api/reference/tags/
use MadeITBelgium\WordPress\WordPressFacade as WordPress;
$users = WordPress::tag()->list();
$result = WordPress::tag()->create($data);
$user = WordPress::tag()->get($id);
$result = WordPress::tag()->update($id, $data);
$result = WordPress::tag()->delete($id);
创建新文章
$data = [
'title' => 'title',
'parent' => 0,
'slug' => Str::slug('title', '-'),
'content' => 'content',
];
$post = WordPress::post()->create($data);
// {'id': ...}
上传媒体
use Illuminate\Support\Facades\Storage;
use MadeITBelgium\WordPress\WordPressFacade as WordPress;
$media = WordPress::postCall('/wp-json/wp/v2/media', [
'multipart' => [
[
'name' => 'file',
'contents' => Storage::disk('local')->get($fileLocation),
'filename' => 'filename.jpg',
],
[
'name' => 'title',
'contents' => 'Title of attachment',
],
[
'name' => 'alt_text',
'contents' => 'Alt text',
],
],
]);
执行任何请求
了解更多关于WordPress rest API的信息:https://developer.wordpress.org/rest-api/
获取
$url = "";
$result = WordPress::getCall('/wp-json'.$url);
放置
$result = WordPress::putCall('/wp-json'.$url, $data);
文章
$result = WordPress::postCall('/wp-json'.$url, $data);
删除
$result = WordPress::deleteCall('/wp-json'.$url);
完整的文档可以在以下位置找到:https://www.tpweb.org/my-projects/wordpress-php-sdk/
支持
支持github或邮件: tjebbe.lievens@madeit.be
贡献
请尽量遵循psr-2编码风格指南。 http://www.php-fig.org/psr/psr-2/
许可
此包采用LGPL许可。您可以在个人和商业项目中免费使用它。代码可以被分支和修改,但必须始终包含原始版权作者!