📅  最后修改于: 2023-12-03 15:35:43.647000             🧑  作者: Mango
如果您是一名编程人员,想要在 WordPress 中添加新的文章,那么这篇文章将为您提供一个完整的解决方案。
首先,在您的 WordPress 站点上,您需要创建一个新的用户并分配「管理员」权限。然后,在您的 WordPress 中,安装和激活 WP REST API 插件。这使得我们可以使用 REST API 来从外部应用程序添加新文章。
我们需要使用 WordPress 提供的 wp_remote_post
函数向站点发送一个 POST 请求,以获取访问令牌:
$url = 'https://example.com/wp-json/jwt-auth/v1/token';
$response = wp_remote_post( $url, array(
'method' => 'POST',
'headers' => array(
'Content-Type' => 'application/json',
),
'body' => json_encode(
array(
'username' => 'admin',
'password' => 'yourpassword',
)
),
) );
if ( is_wp_error( $response ) ) {
// handle error
} else {
$data = json_decode( $response['body'] );
$access_token = $data->token;
}
这将返回一个 JSON 响应,其中包含一个称为「access_token」的令牌,您需要将其存储为变量以供稍后使用。
接下来,我们需要再次使用 WordPress 提供的 wp_remote_post
函数,以创建一个包含新文章信息的 POST 请求:
$url = 'https://example.com/wp-json/wp/v2/posts';
$response = wp_remote_post( $url, array(
'method' => 'POST',
'headers' => array(
'Authorization' => 'Bearer ' . $access_token,
'Content-Type' => 'application/json',
),
'body' => json_encode(
array(
'title' => 'New post',
'content' => 'This is the content of the new post.',
'status' => 'publish',
)
),
) );
if ( is_wp_error( $response ) ) {
// handle error
} else {
$data = json_decode( $response['body'] );
$post_id = $data->id;
}
这将创建一个新的 POST 请求,并将新文章的标题、内容和状态设置为「publish」。新文章的 ID 将作为响应的一部分返回,并且您需要将其存储为变量以供稍后使用。
最后,我们使用 wp_remote_request
函数向 WordPress 发送一个 GET 请求来检查新文章是否成功创建:
$url = 'https://example.com/wp-json/wp/v2/posts/' . $post_id;
$response = wp_remote_request( $url, array(
'method' => 'GET',
) );
if ( is_wp_error( $response ) ) {
// handle error
} else {
$data = json_decode( $response['body'] );
if ( $data->title->raw == 'New post' ) {
echo 'New post created!';
} else {
echo 'Error creating new post.';
}
}
这将检查新文章是否已成功创建,并根据检查结果返回相关信息。
完整的 PHP 脚本如下所示:
<?php
// Get access token
$url = 'https://example.com/wp-json/jwt-auth/v1/token';
$response = wp_remote_post( $url, array(
'method' => 'POST',
'headers' => array(
'Content-Type' => 'application/json',
),
'body' => json_encode(
array(
'username' => 'admin',
'password' => 'yourpassword',
)
),
) );
if ( is_wp_error( $response ) ) {
// handle error
} else {
$data = json_decode( $response['body'] );
$access_token = $data->token;
}
// Create new post
$url = 'https://example.com/wp-json/wp/v2/posts';
$response = wp_remote_post( $url, array(
'method' => 'POST',
'headers' => array(
'Authorization' => 'Bearer ' . $access_token,
'Content-Type' => 'application/json',
),
'body' => json_encode(
array(
'title' => 'New post',
'content' => 'This is the content of the new post.',
'status' => 'publish',
)
),
) );
if ( is_wp_error( $response ) ) {
// handle error
} else {
$data = json_decode( $response['body'] );
$post_id = $data->id;
}
// Check if new post created successfully
$url = 'https://example.com/wp-json/wp/v2/posts/' . $post_id;
$response = wp_remote_request( $url, array(
'method' => 'GET',
) );
if ( is_wp_error( $response ) ) {
// handle error
} else {
$data = json_decode( $response['body'] );
if ( $data->title->raw == 'New post' ) {
echo 'New post created!';
} else {
echo 'Error creating new post.';
}
}
通过使用上述代码片段,您可以使用 PHP 编写程序来从外部应用程序中向 WordPress 添加新文章,这将为您和您的客户端带来便利和效率。如果您需要证明您的 WordPress 站点是安全的,请务必考虑加强您的安全措施以保护您的站点和用户。