使用 C# 连接到 WordPress
[
](https://res.cloudinary.com/practicaldev/image/fetch/s--AfBP32ow--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/http://yeisonpx.com/ wp-content/uploads/2018/09/Screen-Shot-2018-09-18-at-9.09.51-AM-1024x558.png)
在这篇文章中,我们将了解如何使用 C# 连接到 Wordpress 网站,并通过三个简单的步骤使用 WordpressPCL 库制作出版物。
Wordpress 是一个很棒的 CMS,它允许开发人员和不需要大量软件开发技能的人创建具有出色功能的网站。因此,它是实际用于构建网站的最流行的工具之一。
该 CMS 可以非常灵活地创建自定义功能,尽管它很可能像可以安装到站点的插件一样存在。 Wordpress 拥有庞大的开发人员社区,他们在平台方面拥有丰富的经验,您可以在其中找到几乎所有问题的解决方案。
Wordpress 是用 PHP 构建的,因此如果您不了解该语言,您可能会在学习和实现您想做的事情的过程中浪费时间。
接下来,我们将了解如何使用 c# 配置 Visual Studio 项目以连接到使用 Wordpress 的网站,这对于不具备良好 PHP 知识的 .Net 开发人员来说是一个很好的解决方案。
1\。在您的网站中配置 Wordpress API
首先,您需要将您的网站配置为启用允许在 WordPress 上读写的 API。使用 WordpressPCL 连接到 Wordpress 的先决条件是在您的网站中安装以下插件:
-
WP REST API
-
WP REST API 的 JWT 身份验证
然后要完成 de JWT 配置,需要对 .htaccess 文件添加一些修改:
- 首先,启用 HTTP Authorization Header 添加以下内容:
RewriteEngine on
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
- 然后启用 WP ENGINE 在同一个 .htaccess 文件中添加此代码:
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
JWT 需要一个密钥来签署令牌,这个密钥必须是唯一的并且永远不会泄露。
要添加密钥,请编辑您的 wp-config.php 文件并添加一个名为 JWT_AUTH_SECRET_KEY 的新常量。
define('JWT_AUTH_SECRET_KEY', 'your-top-secrect-key');
您可以从此处生成和使用字符串https://api.wordpress.org/secret-key/1.1/salt/
您可以在此处查看文档中的所有详细信息。
2\。从 Nuget 包安装 WordpressPCL
现在您需要从 Visual Studio 安装名为 WordpressPCL 的 Wordpress nuget 包。要打开 nugget 包管理器,请在 Visual Studio 中右键单击您的项目,然后单击 Manage Nuget Package。
[
](https://res.cloudinary.com/practicaldev/image/fetch/s--h75z_AxX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/http://yeisonpx.com/ wp-content/uploads/2018/09/nugget-packages-1024x576.png)
然后搜索 WordPressPCL 并右键单击 Install。
[
](https://res.cloudinary.com/practicaldev/image/fetch/s--M0VvpePP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/http://yeisonpx.com/ wp-content/uploads/2018/09/nugget-packages-1-1024x532.png)
您还可以使用 nuget 包控制台插入以下命令来安装包:
Install-Package WordPressPCL -Version 1.5.0
你可以用 WordpressPCL 做什么?好吧,下表显示了您有权使用的受支持方法。
[
](https://res.cloudinary.com/practicaldev/image/fetch/s--A96XkctS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/http://yeisonpx.com/ wp-content/uploads/2018/09/Screen-Shot-2018-09-18-at-3.16.49-PM.png)
现在我们已经配置并安装了您需要的所有东西,让我们看看如何从 Wordpress 创建、更新和查询数据。
示例 1:连接到 Wordpress
要连接到 Wordpress 客户端,您可以使用在其构造函数中接受您网站 URL 的类 WordPressClient。示例http://domain-example.com/wp-json/。其中 /wp-jon/ 是 Wordpress REST API 的默认路径。
private static async Task<WordPressClient> GetClient()
{
// JWT authentication
var client = new WordPressClient("http://wordpress-domain.com/wp-json/");
client.AuthMethod = AuthMethod.JWT;
await client.RequestJWToken("user", "password");
return client;
}
示例 2:创建和更新数据
using System;
using System.Linq;
using System.Threading.Tasks;
using WordPressPCL;
using WordPressPCL.Models;
namespace WordPressTest
{
class Program
{
static void Main(string[] args)
{
CreatePost().Wait();
}
private static async Task CreatePost()
{
try
{
WordPressClient client = await GetClient();
if (await client.IsValidJWToken())
{
var post = new Post
{
Title = new Title("New post test"),
Content = new Content("Content for new post.")
};
await client.Posts.Create(post);
}
}
catch (Exception e)
{
Console.WriteLine("Error:" + e.Message);
}
}
private static async Task<WordPressClient> GetClient()
{
// JWT authentication
var client = new WordPressClient("http://wordpress-domain.com/wp-json/");
client.AuthMethod = AuthMethod.JWT;
await client.RequestJWToken("user", "password");
return client;
}
}
}
示例3:获取数据
查询数据很容易,如下所示:
var client = GetClient();
//Getting all the post
var posts =await client.Posts.GetAll();
//Getting one post
var onePost = await client.Posts.GetByID(1);
您可以从我的 Github 帐户中的项目WordpressTest下载这些示例,有关 WordpressPCL API 的更多信息,您可以在此处查看官方文档:Github WordpressPCL 文档。
我希望我可以帮助您很好地了解如何使用 .Net 连接到 Wordpress 网站。
如果你有任何兄弟,请告诉我。
原帖:Step By Step to Connect to Wordpress Using C Sharp
更多推荐

所有评论(0)