madeitbelgium/wordpress-php-sdk

WordPress Laravel PHP SDK

1.5.1 2023-10-27 14:11 UTC

This package is auto-updated.

Last update: 2024-08-27 16:14:32 UTC


README

Build Status Coverage Status Latest Stable Version Latest Unstable Version Total Downloads License

安装

在您的 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许可。您可以在个人和商业项目中免费使用它。代码可以被分支和修改,但必须始终包含原始版权作者!