Thủ thuật Website

Kết nối với WordPress bằng C #

Trong bài đăng này, chúng ta sẽ xem cách kết nối với trang web WordPress bằng C # và tạo ấn phẩm bằng thư viện WordPressPCL trong ba bước đơn giản.

WordPress là một CMS tuyệt vời cho phép các nhà phát triển và những người không cần nhiều kỹ năng phát triển phần mềm có thể tạo các trang web với các chức năng tuyệt vời. Do đó, là một trong những công cụ phổ biến nhất được sử dụng thực sự để xây dựng các trang web.

CMS này rất linh hoạt để tạo các chức năng tùy chỉnh, mặc dù rất có thể tồn tại giống như một plugin có thể được cài đặt cho trang web. Wordpress có một cộng đồng lớn các nhà phát triển với nhiều kinh nghiệm với nền tảng này, nơi bạn có thể tìm thấy giải pháp cho hầu hết mọi vấn đề mà bạn có thể gặp phải.

Vấn đề với WordPress là được xây dựng bằng PHP, vì vậy nếu bạn không biết ngôn ngữ này, bạn có thể mất thời gian trong quá trình tìm hiểu và sau đó thực hiện những gì bạn muốn làm.

Tiếp theo, Chúng ta sẽ xem cách cấu hình một dự án studio trực quan với c # để kết nối với một trang web bằng WordPress, đây là một giải pháp tốt cho các nhà phát triển .Net không có kiến ​​thức tốt về PHP.

1. Định cấu hình API WordPress trong trang web của bạn

Trước hết, bạn cần định cấu hình trang web của mình để bật API cho phép đọc và viết trên WordPress. Điều kiện tiên quyết để kết nối WordPress với WordPressPCL là cài đặt các plugin sau vào trang web của bạn:

  • API REST WP
  • Xác thực JWT cho API WP REST

Sau đó, để hoàn thành cấu hình de JWT là cần thiết để thêm một số sửa đổi đối với. tệp htaaccess :

  • Đầu tiên, hãy bật Tiêu đề ủy quyền HTTP thêm những thứ sau:
    RewriteEngine on
    RewriteCond %{HTTP:Authorization} ^(.*)
    RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]

 

  • Sau đó, kích hoạt WPENGINE thêm mã này vào cùng một. tệp htacess :

    SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

JWT cần một  khóa bí mật  để ký mã thông báo,  khóa bí mật này  phải là duy nhất và không bao giờ được tiết lộ.

Để thêm  khóa bí mật ,  hãy chỉnh sửa tệp wp-config.php của bạn và thêm một hằng số mới có tên  JWT_AUTH_SECRET_KEY.

    define('JWT_AUTH_SECRET_KEY', 'your-top-secrect-key');

 

Bạn có thể tạo và sử dụng một chuỗi từ đây https://api.wordpress.org/secret-key/1.1/salt/

Bạn có thể xem tất cả các chi tiết từ tài liệu tại đây.

2. Cài đặt WordPressPCL từ Nuget Packages

Bây giờ bạn cần cài đặt gói WordPress nuget từ Visual Studio có tên là WordPressPCL . Để mở trình quản lý gói nugget, hãy nhấp chuột phải vào dự án của bạn trong Visual Studio và sau đó nhấp vào Quản lý gói Nuget .

Sau đó, tìm kiếm WordPressPCL và nhấp chuột phải vào Cài đặt .

Bạn cũng có thể cài đặt các gói bằng cách sử dụng bảng điều khiển gói nuget chèn các lệnh sau:

Install-Package WordPressPCL -Version 1.5.0

Bạn có thể làm gì với WordPressPCL? Bảng sau đây cho thấy các phương pháp được hỗ trợ mà bạn có quyền sử dụng.

Bây giờ chúng tôi đã cấu hình và cài đặt tất cả những gì bạn cần, hãy xem cách chúng tôi có thể tạo, cập nhật và truy vấn dữ liệu từ WordPress.

Ví dụ 1: Kết nối với WordPress

Để kết nối với ứng dụng khách WordPress, bạn có thể sử dụng lớp  WordPressClient chấp nhận URL của trang web trong phương thức khởi tạo của mình. Ví dụ  http://domain-example.com/wp-json/ . Trong đó  / wp-jon / là đường dẫn mặc định đến 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;
        }

Ví dụ 2: Tạo và cập nhật dữ liệu

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;
        }
    }
}

Ví dụ 3: Lấy dữ liệu

Để truy vấn dữ liệu rất dễ dàng như bạn có thể xem bên dưới:


    var client = GetClient();

    //Getting all the post
    var posts =await client.Posts.GetAll();

    //Getting one post
     var onePost = await client.Posts.GetByID(1);

Bạn có thể tải xuống các ví dụ này từ tài khoản Github của tôi trong dự án  WordPressTest và để biết thêm thông tin về API WordPressPCL, bạn có thể kiểm tra tài liệu chính thức tại đây: Tài liệu Github WordPressPCL.

Tôi hy vọng rằng tôi có thể giúp bạn giới thiệu tốt về cách kết nối với một trang web WordPress sử dụng .Net.

Làm ơn cho tôi biết nếu bạn có bất kỳ anh chàng nào.

Related Articles

Trả lời

Email của bạn sẽ không được hiển thị công khai.

Back to top button