Plugin api wordpress

Ngày trước khi chưa biết đến WordPress REST API, mình thường tạo 1 trang /api và viết API cho WordPress. Việc đó khá tốn thời gian, công sức và nhiều khi không được như ý. Còn bây giờ với WordPress REST API, mọi thứ như đã dễ dàng hơn khá nhiều. Mình sẽ share lại nhưng trải nghiệm sau khi trải nghiệm với WordPress REST API

WordPress REST API là gì?

WordPress REST API cung cấp API Endpoint cho phép các lập trình viên tương tác với các trang web từ xa bằng cách gửi và nhận các đối tượng JSON (Ký hiệu đối tượng JavaScript). JSON là một định dạng dữ liệu tiêu chuẩn mở, nhẹ và dễ đọc. Khi bạn gửi nội dung đến hoặc gửi yêu cầu tới API, phản hồi sẽ được trả về ở định dạng JSON. Điều này cho phép các thành viên lập trình tạo, đọc và cập nhật nội dung WordPress từ xa hoặc từ các ứng dụng bên ngoài

Khái niệm về WordPress REST API

Để bắt đầu, bạn cần hiểu các khái niệm sau

  • Tuyến đường/Điểm cuối. Có thể hiểu đây là đường dẫn bạn gửi yêu cầu tới blog của bạn. It has the path is. http. // blog của bạn. com/wp-json/
  • yêu cầu. Gửi yêu cầu tới Điểm cuối
  • phản hồi. Data return of Endpoint
  • Lược đồ. Constructor data that Responses return to you can verify the data is need to find
  • lớp điều khiển. Trình điều khiển, nơi quản lý, điều hướng Điểm cuối, Yêu cầu, Phản hồi

Hướng dẫn sử dụng WordPress REST API

Bây giờ chúng ta sẽ cùng tìm hiểu cách quản lý WordPress thông qua WordPress REST API

base path is

http://your-blog.com/wp-json

Plugin api wordpress

Liệt kê danh sách các bài viết (posts)

curl -X OPTIONS -i http://your-blog.com/wp-json/wp/v2/posts

Listing list of pages (pages)

curl -X GET -i http://your-blog.com/wp-json/wp/v2/pages

Nhận bài viết theo ID

curl -X GET -i http://your-blog.com/wp-json/wp/v2/posts/

Plugin api wordpress

Tạo mới một bài viết

Để tạo 1 bài viết mới trong WordPress, thông thường bạn phải đăng nhập vào trang quản trị và viết bài. Tuy nhiên, với Rest API, bạn không thể đăng nhập bằng phương pháp thông thường. Vì vậy bạn cần 1 plugin để thực hiện điều đó mới có thể tạo bài viết thông qua REST API. That is Basic Auth

Sau khi cài đặt xong, chúng ta có thể tạo bài viết với sự xác thực đơn giản

curl --user username:password http://your-blog.com/wp-json/

Hoặc tạo bài viết với tiêu đề phần

ủy quyền. dGVzdHVzZXI6MTIzNDU2 cơ bản

With. dGVzdHVzZXI6MTIzNDU2 là mã base64 của tên người dùng. mật khẩu mở khóa

Plugin api wordpress

Cập nhật bài viết

curl -X POST --user username:password http://your-blog.com/wp-json/wp/v2/posts/ -d '{"title":"My New Title"}'

Xóa bài viết

curl -X DELETE https://your-blog.com/wp-json/wp/v2/posts/

Kết luận

Bên trên là một số ví dụ về việc sử dụng WordPress REST API để quản lý bài viết, ngoài ra còn có rất nhiều tính năng khác. Các bạn vui lòng tham khảo tài liệu chính thức tại đây

Bài viết này giả định rằng bạn đã đọc phần Viết plugin, đưa ra cái nhìn tổng quan (và nhiều chi tiết) về cách phát triển plugin. Điều tương tự cũng nói cụ thể về API "Móc", còn được gọi là "Bộ lọc" và "Hành động", được WordPress sử dụng để đặt plugin của bạn khi chạy

Những móc này cũng có thể được sử dụng trong các chủ đề, như được mô tả tại đây

móc. Hành động và Bộ lọc

Móc được cung cấp bởi WordPress để cho phép plugin của bạn 'kết nối' với phần còn lại của WordPress; . Có hai loại móc

Đôi khi, bạn có thể hoàn thành cùng một mục tiêu bằng một hành động hoặc một bộ lọc. Ví dụ: nếu bạn muốn plugin của mình thay đổi văn bản của bài đăng, bạn có thể thêm chức năng hành động vào publish_post (để bài đăng được sửa đổi khi nó được lưu vào cơ sở dữ liệu) hoặc chức năng lọc vào the_content (vì vậy bài đăng được

Để biết danh sách kỹ lưỡng về tất cả các hook hành động và bộ lọc trong WP, hãy xem Adam Brown's WordPress Hooks Database

Chức năng tham khảo

Chức năng Kích hoạt/Hủy kích hoạt/Gỡ cài đặt

hành động

Các hành động được kích hoạt bởi các sự kiện cụ thể diễn ra trong WordPress, chẳng hạn như xuất bản bài đăng, thay đổi chủ đề hoặc hiển thị màn hình quản trị. Một Hành động là một hàm PHP tùy chỉnh được xác định trong plugin (hoặc chủ đề) của bạn và được kết nối, tôi. e. được thiết lập để đáp ứng, với một số sự kiện này. Các hành động thường thực hiện một hoặc nhiều thao tác sau

  • Sửa đổi dữ liệu cơ sở dữ liệu
  • Gửi thư điện tử
  • Sửa đổi màn hình quản trị đã tạo hoặc trang giao diện người dùng được gửi tới trình duyệt người dùng

Các bước cơ bản để thực hiện điều này (được mô tả chi tiết hơn bên dưới) là

  1. Tạo một hàm PHP sẽ thực thi khi một sự kiện WordPress cụ thể xảy ra, trong tệp plugin của bạn
  2. Kết nối chức năng này với sự kiện bằng cách sử dụng hàm add_action()
  3. Đặt chức năng PHP của bạn vào tệp plugin và kích hoạt nó

Tạo một chức năng hành động

Bước đầu tiên để tạo một hành động trong plugin của bạn là tạo một hàm PHP với chức năng hành động của plugin của bạn và đặt nó vào tệp plugin của bạn (tệp plugin của bạn phải nằm trong thư mục wp-content/plugins). Ví dụ: nếu bạn muốn bạn bè của mình nhận được email bất cứ khi nào bạn tạo một bài đăng mới, bạn có thể xác định chức năng sau

function email_friends($post_ID) {
    $friends = '[email protected],[email protected]';
    mail($friends, "sally's blog updated", 
      'I just put something on my blog: http://blog.example.com');
    return $post_ID;
}

Đối với hầu hết các hành động, chức năng của bạn phải chấp nhận một tham số duy nhất (thường là ID bài đăng hoặc nhận xét, tùy thuộc vào hành động). Một số hành động cần nhiều hơn một tham số -- kiểm tra tài liệu về hành động (nếu có) hoặc mã nguồn WordPress để biết thêm thông tin. Bên cạnh một tham số, bạn cũng có thể truy cập các biến toàn cục của WordPress và gọi các hàm WordPress khác (hoặc các hàm trong tệp plugin của bạn)

Bất kỳ đầu ra văn bản nào của hàm (e. g. bằng chữ in) sẽ xuất hiện trong nguồn trang tại vị trí mà hành động được gọi

GHI CHÚ. Hãy nhớ rằng các plugin khác hoặc lõi WordPress có thể đã sử dụng tên chức năng mà bạn đã nghĩ đến. Xem phần tiếp theo, Tránh xung đột tên hàm để biết thêm thông tin

Tránh xung đột tên chức năng

Có thể ai đó đã tạo plugin có chức năng có tên giống với chức năng trong plugin của bạn

Đây là một vấn đề vì PHP không cho phép nhiều hàm có cùng tên. Nếu hai plugin cung cấp chức năng có cùng tên hoặc plugin cung cấp chức năng có tên giống với chức năng của WordPress, thì blog có thể ngừng hoạt động. Có hai cách để tránh vấn đề này

Giải pháp đầu tiên là đặt tiền tố cho mọi chức năng trong plugin của bạn bằng một bộ ký tự duy nhất. Nếu tên bạn là John Q. Công khai, bạn có thể khai báo các chức năng của mình là

curl -X GET -i http://your-blog.com/wp-json/wp/v2/pages
0. Khả năng ai đó có cùng tên viết tắt thực hiện điều tương tự với plugin của họ là có thể nhưng thấp

Giải pháp thứ hai - và có thể dễ dàng hơn - là đặt các chức năng plugin của bạn trong một lớp và gọi tĩnh các phương thức của lớp. Điều này nghe có vẻ phức tạp hơn thực tế

Hãy xem xét lớp này, mở rộng trên các ví dụ được cung cấp ở trên

________số 8

Lớp này được gọi là người gửi email có một phương thức gửi thực hiện chức năng plugin

Hàm add_action() bên ngoài lớp thêm hành động vào WordPress để yêu cầu nó gọi phương thức gửi khi bài đăng được xuất bản. Mảng được sử dụng trong tham số thứ hai báo cho hệ thống plugin gọi phương thức tĩnh của lớp 'emailer' có tên 'send'

Hàm gửi được bảo vệ khỏi không gian tên chung bằng cách khai báo lớp. Không thể gọi hàm send() trực tiếp và do đó, bất kỳ hàm nào khác có tên gửi sẽ không xung đột với hàm này. Nếu bạn muốn gọi send(), bạn sẽ cần sử dụng toán tử phân giải phạm vi, như thế này.

class emailer {
  static function send($post_ID)  {
    $friends = '[email protected],[email protected]';
    mail($friends,"sally's blog updated",'I just put something on my blog: http://blog.example.com');
    return $post_ID;
  }
}

add_action('publish_post', array('emailer', 'send'));
0

Ví dụ trên dành cho các phương thức tĩnh. Nếu bạn có một thể hiện của một lớp thì nó sẽ không hoạt động. Để gọi một phương thức của một thể hiện, bạn cần truyền thể hiện đó dưới dạng một biến. Xem xét ví dụ trên được sửa đổi để tính đến điều này

curl -X OPTIONS -i http://your-blog.com/wp-json/wp/v2/posts
0

Các lớp học là một chủ đề phức tạp. Đọc thêm về chúng trong tài liệu PHP về các lớp học

Kết nối với WordPress

Sau khi chức năng của bạn được xác định, bước tiếp theo là "hook" hoặc đăng ký nó với WordPress. Để thực hiện việc này, hãy gọi add_action() trong không gian thực thi chung của tệp plugin của bạn

curl -X OPTIONS -i http://your-blog.com/wp-json/wp/v2/posts
1

ở đâu

hook_name Tên của hook hành động do WordPress cung cấp, cho biết chức năng của bạn sẽ được liên kết với sự kiện nào. your_function_name Tên của hàm mà bạn muốn thực thi sau sự kiện được chỉ định bởi hook_name. Đây có thể là một hàm php tiêu chuẩn, một hàm có trong lõi WordPress hoặc một hàm do bạn xác định trong tệp plugin (chẳng hạn như 'email_friends' được xác định ở trên). ưu tiên Một đối số số nguyên tùy chọn được sử dụng để chỉ định thứ tự thực thi các chức năng được liên kết với một hành động cụ thể (mặc định. 10). Các số thấp hơn tương ứng với việc thực hiện sớm hơn và các chức năng có cùng mức độ ưu tiên được thực hiện theo thứ tự được thêm vào hành động. accept_args Một đối số số nguyên tùy chọn xác định số lượng đối số mà hàm của bạn có thể chấp nhận (mặc định là 1), hữu ích vì một số hook có thể chuyển nhiều hơn một đối số cho hàm của bạn. Tham số này là mới trong phiên bản 1. 5. 1

Trong ví dụ trên, chúng tôi sẽ đặt dòng sau vào tệp plugin

curl -X OPTIONS -i http://your-blog.com/wp-json/wp/v2/posts
2

Tương tự như vậy, bạn cũng có thể Xóa Hành động khỏi móc hành động. Xem phần đó để biết chi tiết

Cài đặt và kích hoạt

Bước cuối cùng để hook hành động của bạn hoạt động là cài đặt tệp và kích hoạt plugin. Hàm PHP bạn đã viết và lệnh gọi add_action phải đi cùng nhau vào một tệp PHP và tệp PHP phải được cài đặt trong thư mục wp-content/plugins. Sau khi nó được cài đặt, bạn sẽ cần truy cập phần quản trị của WordPress và kích hoạt plugin của mình;

Móc hiện tại cho các hành động

Xem Plugin API/Tham chiếu hành động để biết danh sách các hook hành động hiện tại trong WordPress và liên kết đến các phiên bản trước của WordPress

bộ lọc

Bộ lọc là các chức năng mà WordPress chuyển dữ liệu qua, tại một số điểm nhất định trong quá trình thực thi, ngay trước khi thực hiện một số hành động với dữ liệu (chẳng hạn như thêm dữ liệu vào cơ sở dữ liệu hoặc gửi dữ liệu đến màn hình trình duyệt). Các bộ lọc nằm giữa cơ sở dữ liệu và trình duyệt (khi WordPress đang tạo trang) và giữa trình duyệt và cơ sở dữ liệu (khi WordPress thêm bài đăng và nhận xét mới vào cơ sở dữ liệu); . WordPress thực hiện một số bộ lọc theo mặc định và plugin của bạn có thể thêm bộ lọc của riêng nó

Các bước cơ bản để thêm bộ lọc của riêng bạn vào WordPress (được mô tả chi tiết hơn bên dưới) là

  1. Tạo hàm PHP lọc dữ liệu
  2. Kết nối với bộ lọc trong WordPress, bằng cách gọi add_filter()
  3. Đặt chức năng PHP của bạn vào tệp plugin và kích hoạt nó

Tạo chức năng lọc

Hàm lọc lấy dữ liệu chưa sửa đổi làm đầu vào và trả về dữ liệu đã sửa đổi (hoặc trong một số trường hợp, giá trị null để cho biết dữ liệu sẽ bị xóa hoặc bỏ qua). Nếu dữ liệu không được sửa đổi bởi bộ lọc của bạn, thì dữ liệu gốc phải được trả lại để các plugin tiếp theo có thể tiếp tục sửa đổi giá trị nếu cần

Vì vậy, bước đầu tiên trong việc tạo bộ lọc trong plugin của bạn là tạo một hàm PHP để thực hiện lọc và đặt nó vào tệp plugin của bạn (tệp plugin của bạn phải nằm trong thư mục wp-content/plugins). Ví dụ: nếu bạn muốn đảm bảo rằng các bài đăng và nhận xét của mình không chứa ngôn từ tục tĩu, bạn có thể xác định một biến có danh sách các từ bị cấm, sau đó tạo hàm PHP sau

curl -X OPTIONS -i http://your-blog.com/wp-json/wp/v2/posts
3

Tại sao điều này làm việc mà không có một vòng lặp? . Hàm str_ireplace được sử dụng thay cho str_replace vì str_ireplace không phân biệt chữ hoa chữ thường

GHI CHÚ. Hãy nhớ rằng các plugin khác hoặc lõi WordPress có thể đã sử dụng tên chức năng mà bạn đã nghĩ đến. Xem Đề xuất phát triển plugin để biết thêm thông tin

Móc trong Bộ lọc của bạn

Sau khi chức năng của bạn được xác định, bước tiếp theo là "hook" hoặc đăng ký nó với WordPress. Để thực hiện việc này, hãy gọi add_filter() trong không gian thực thi chung của tệp plugin của bạn

curl -X OPTIONS -i http://your-blog.com/wp-json/wp/v2/posts
4

ở đâu

hook_name Tên hook bộ lọc do WordPress cung cấp, xác định thời điểm áp dụng bộ lọc của bạn. your_filter Tên của chức năng mà bạn muốn sử dụng để lọc. Đây có thể là một hàm PHP tiêu chuẩn, một hàm có trong lõi WordPress hoặc một hàm do bạn xác định trong tệp plugin. ưu tiên Một đối số số nguyên tùy chọn có thể được sử dụng để chỉ định thứ tự thực thi các hàm được liên kết với một bộ lọc cụ thể (mặc định. 10). Các số thấp hơn tương ứng với lần thực thi trước đó và các hàm có cùng mức độ ưu tiên được thực hiện theo thứ tự mà chúng được thêm vào bộ lọc. accept_args Một đối số số nguyên tùy chọn xác định số lượng đối số mà hàm của bạn có thể chấp nhận (mặc định là 1), hữu ích vì một số hook có thể chuyển nhiều hơn một đối số cho hàm của bạn. Giá trị trả về Giá trị (được sửa đổi tùy chọn) của đối số đầu tiên được truyền cho hàm lọc

Trong ví dụ trên, chúng tôi sẽ đặt phần sau vào phần thực thi chính của tệp plugin, để yêu cầu WordPress lọc các nhận xét thô tục

curl -X OPTIONS -i http://your-blog.com/wp-json/wp/v2/posts
5

Bạn cũng có thể xóa bộ lọc khỏi hook bộ lọc bằng hàm remove_filter(). Xem Xóa hành động và bộ lọc

Cài đặt và kích hoạt

Bước cuối cùng để móc bộ lọc của bạn hoạt động là cài đặt tệp và kích hoạt plugin. Hàm PHP bạn đã viết và lệnh gọi add_filter() phải đi cùng nhau vào một tệp PHP và tệp PHP phải được cài đặt trong thư mục wp-content/plugins. Sau khi nó được cài đặt, bạn sẽ cần truy cập phần quản trị của WordPress và kích hoạt plugin của mình;

Móc hiện tại cho bộ lọc

Xem Plugin API/Tham chiếu bộ lọc để biết danh sách các hook bộ lọc hiện tại trong WordPress và các liên kết đến các phiên bản trước của WordPress

Thí dụ

Đây là một ví dụ, để plugin sửa đổi (hoặc ghi đè) chức năng

class emailer {
  static function send($post_ID)  {
    $friends = '[email protected],[email protected]';
    mail($friends,"sally's blog updated",'I just put something on my blog: http://blog.example.com');
    return $post_ID;
  }
}

add_action('publish_post', array('emailer', 'send'));
1 mặc định. Điều này sẽ yêu cầu sửa đổi một hành vi chức năng cốt lõi

curl -X OPTIONS -i http://your-blog.com/wp-json/wp/v2/posts
7

Xóa hành động và bộ lọc

Trong một số trường hợp, bạn có thể thấy rằng bạn muốn plugin của mình vô hiệu hóa một trong các hành động hoặc bộ lọc được tích hợp trong WordPress hoặc được thêm bởi một plugin khác. Bạn có thể làm điều đó bằng cách gọi remove_filter('filter_hook','filter_function') hoặc remove_action('action_hook','action_function')

Ví dụ: remove_action('publish_post','generic_ping');

Lưu ý rằng nếu một hook đã được đăng ký bằng cách sử dụng mức độ ưu tiên khác với mặc định là 10, thì bạn cũng phải chỉ định mức độ ưu tiên trong lệnh gọi remove_action(). Cũng xin lưu ý rằng nói chung, bạn không nên xóa bất cứ thứ gì trừ khi bạn biết nó làm gì và tại sao nó lại làm như vậy -- hãy kiểm tra mã nguồn plugin WordPress hoặc plugin khác để chắc chắn

Chức năng có thể cắm

Bên cạnh các hook (hành động và bộ lọc) được mô tả ở trên, một cách khác để plugin sửa đổi hành vi của WordPress là ghi đè các chức năng của WordPress. Trên thực tế, có một bộ chức năng nhỏ mà WordPress dành cho các plugin để xác định lại. Chúng được gọi là Hàm có thể cắm được và chúng được định nghĩa trong

class emailer {
  static function send($post_ID)  {
    $friends = '[email protected],[email protected]';
    mail($friends,"sally's blog updated",'I just put something on my blog: http://blog.example.com');
    return $post_ID;
  }
}

add_action('publish_post', array('emailer', 'send'));
2. WordPress chỉ tải các chức năng này nếu chúng vẫn chưa được xác định sau khi tất cả các plugin đã được tải. Để biết thêm chi tiết, hãy kiểm tra tệp
class emailer {
  static function send($post_ID)  {
    $friends = '[email protected],[email protected]';
    mail($friends,"sally's blog updated",'I just put something on my blog: http://blog.example.com');
    return $post_ID;
  }
}

add_action('publish_post', array('emailer', 'send'));
3

Kích hoạt/Hủy kích hoạt/Gỡ cài đặt

Nếu plugin của bạn chỉ có các tác vụ cần hoàn thành khi kích hoạt hoặc hủy kích hoạt, plugin đó có thể sử dụng register_activation_hook và register_deactivation_hook. Nhiều plugin không cần sử dụng những plugin này vì plugin chỉ sửa đổi hành vi hiện tại. Tuy nhiên, nếu plugin của bạn (ví dụ) cần thay đổi tùy chọn mặc định khi kích hoạt, thì nó có thể sử dụng các chức năng này

Tạo bảng với plugin có một ví dụ sử dụng hàm register_activation_hook để làm cho cơ sở dữ liệu tương thích với phiên bản hiện tại của plugin

register_uninstall_hook cung cấp cho plugin của bạn tùy chọn tự dọn dẹp sau khi nó bị xóa khỏi cài đặt WordPress. Người dùng có lý do để tạm thời hủy kích hoạt plugin, vì vậy đừng làm bất cứ điều gì từ móc hủy kích hoạt sẽ làm mất bất kỳ cài đặt người dùng nào. Đây là những gì hook gỡ cài đặt dành cho