LẬP TRÌNH PLUGIN
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

Bài 05: Options API trong WordPress: add_option / get_option ...

Trong bài này ta sẽ tìm hiểu về các option API trong WordPress như: add_option, get_option, delete_option, update_option, add_site_option .. và nhiều hàm khác.

Trong database của WordPress bạn sẽ thấy một table ten là [prefix]_options, table này sẽ chứa các thông tin cấu hình của hệ thống. Ngoài các thông tin cấu hình của hệ thống ra thì bạn có thể thêm các thông tin cho riêng bạn, điều này rất hay sử dụng khi xây dựng plugin và theme.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Ví dụ, khi bạn xây dựng một theme thì bạn sẽ phải viết chức năng quản lý cấu hình cho theme đó, lúc này bạn sẽ phải sử dụng table options này để lưu trữ.

1. WordPress Options API là gì?

Options API là danh sách các hàm có sẵn giúp lập trình viên có thể thực hiện các thao tác thêm, xóa, sửa, và lấy các dữ liệu trong bảng Options của WordPress.

Trước tiên chúng ta tìm hiểu các field trong bảng này đã nhé.

wordpress options table png

Như vậy bảng này gồm có 4 field và mỗi field sẽ có ý nghĩa như sau:

  • option_id: Khóa chính của bảng này
  • option_name: Tên key của option
  • option_value: Giá trị của option
  • autoload: Có 2 giá trị là yes hoặc no, nếu yes thì record này sẽ tự động load khi trang web được chạy.

Ví dụ bạn muốn lưu cấu số bài viết hiển thị lúc phân trang thì bạn có thể lưu với giá trị như sau:

  • option_id: Tăng tự động, chúng ta ko truyền vào
  • option_name: total_record_paging
  • option_value: 10
  • autoload: yes

2. Danh sách các Options API

Thời điểm hiện tại chúng ta có tổng cộng 8 hàm và bạn có thể xem tại đây. Hoặc các bạn click vào từng link dưới đây để xem hướng dẫn online trên trang chủ của WordPress.

Trong bài này chúng ta chỉ tìm hiểu hàm add_option, delete_option, get_optionupdate_option thôi nhé, các hàm còn lại xử lý trong vấn đề làm multisite nên mình sẽ không đề cập tới. Tuy nhiên nếu tò mò thì các bạn có thể click vào link để xem :)

3. Ví dụ sử dụng Options API trong WordPress

Bây giờ mình sẽ viết một số ví dụ cách sử dụng bốn hàm add_option, get_option, delete_optionupdate_option.

Bạn tạo một file tên options-api.php nằm trong thư mục includes của plugin mà ở bài cấu trúc của plugin chúng ta đã xây dựng, và nhớ đừng quên sử dụng lênh require để thêm file này vào file wp-learn.php nhé.

new file options api png

Giả sử bây giờ mình cần viết chức năng gửi mail bằng tài khoản gmail nên mình cần lưu hai thông tin tên tài khoản và mật khẩu để sử dụng lúc gửi. Bây giờ ta thực hiện các thao tác nhé.

add_option

Hàm này có cú pháp như sau:

add_option( $option, $value, $deprecated, $autoload );

Trong đó:

  • $option: là tên key
  • $value: là giá trị của key
  • $deprecated: giá trị này bỏ nên bạn không cần sử dụng, cứ để trống lúc sử dụng, giá trị mặc định là rỗng.
  • $autoload: nếu = yes thì hệ thống sẽ tự động load record này lúc website chạy, giá trị mặc định là no nên nếu bạn muốn hệ thống load tự động thì mới sử dụng tham số này.

Bạn viết một đoạn code trong file options-api.php như sau:

// Hàm add_option
add_option('mailer_gmail_username', 'thehalfheart@gmail.com');
add_option('mailer_gmail_password', '@password');

Sau đó bạn reload trang web và vào xem danh sách data của bảng options sẽ có thêm 2 record.

add option function png

get_option

Nếu muốn lấy một record nào đó trong bảng options thì ta sử dụng hàm get_option, hàm này sẽ có cấu trúc như sau:

get_option( $option, $default );

Trong đó:

  • $option: là tên key muốn lấy
  • $default: là giá trị mặc định trường hợp không có key đó trong database.

Bây giờ ta sẽ lấy giá trị key mailer_gmail_username xem có được không nhé. Bạn ẩn đi đoạn code cũ và bổ sung một đoạn code như sau vào file option-api.php.

// Hàm add_option
//add_option('mailer_gmail_username', 'thehalfheart@gmail.com');
//add_option('mailer_gmail_password', '@password');

// Hàm get_option
echo get_option('mailer_gmail_username');

// Die để dễ nhìn kết quả
die;

Lệnh die mình sử dụng để dễ nhìn kết quả trả về. Bạn chạy thử và sẽ thấy giao diện như sau:

get option function png

delete_option

Hàm này dùng để xóa đi một key nào đó trong bảng options. hàm này chỉ có một tham số truyền vào là tên key muốn delete.

Bây giờ ta xóa key mailer_gmail_username trước khi in và sau khi in xem kết quả thế nào nhé.

// Hàm add_option
//add_option('mailer_gmail_username', 'thehalfheart@gmail.com');
//add_option('mailer_gmail_password', '@password');

// Hàm get_option
echo get_option('mailer_gmail_username');

// Hàm delete_option
delete_option('mailer_gmail_username');

// Dùng lệnh var_dump thay vì echo vì lúc này là false
var_dump(get_option('mailer_gmail_username'));

// Die để dễ nhìn kết quả
die;

Kết quả phần var_dump sẽ trả về false.

delete option function png

update_option

Hàm này dùng để cập nhật giá trị của một key nào đó trong bảng options, nó có cấu trúc như sau:

update_option( $option, $new_value, $autoload );

Trong đó:

  • $option: là tên key muốn cập nhật
  • $new_value: là giá trị mới
  • $autoload: là giá trị autoload

Dữ liệu lúc này trong database chỉ còn key mailer_gmail_password nên bây giờ chúng ta sẽ cập nhật giá trị của key này xem có được không nhé.

Bạn ẩn đi các đoạn code cũ và code lại như sau:

// Hàm add_option
//add_option('mailer_gmail_username', 'thehalfheart@gmail.com');
//add_option('mailer_gmail_password', '@password');

// Hàm get_option
//echo get_option('mailer_gmail_username');

// Hàm delete_option
//delete_option('mailer_gmail_username');

// Dùng lệnh var_dump thay vì echo vì lúc này là false
//var_dump(get_option('mailer_gmail_username'));

// Hàm update_option
echo get_option('mailer_gmail_password');

update_option('mailer_gmail_password', 'password@@1234');
echo '<br/>';

echo get_option('mailer_gmail_password');

// Die để dễ nhìn kết quả
die;

Chạy lên bạn sẽ thấy giao diện như sau:

update option function png

Quá hấp dẫn và dễ gây nghiện phải không các bạn :)

4. Lời kết

Trong bài này mình đã giới thiệu xong 4 hàm thường hay dùng trong WordPress trong việc xử lý giao tiếp với bảng options, vẫn còn 4 hàm nữa nhưng mình để dành 4 hàm đó cho các bạn tự nghiên cứu nhé.

Chúng ta đang học các kiến thức về WordPress nâng cao nhằm sau này có thể tự viết các plugin nên mình hiện tại mình đang trình bày theo hình thức lý thuyết, vì vậy nhiều bạn đọc có thể sẽ thấy nhàm chán :) Nhưng hãy ráng đọc nhé vì nếu không bạn sẽ không biết là trong WordPress có những chức năng như vậy.

Cùng chuyên mục:

Cập nhật nhanh 3 bí kíp thiết kế web đẹp mới nhất 2021

Cập nhật nhanh 3 bí kíp thiết kế web đẹp mới nhất 2021

Sở hữu website đẹp, hấp dẫn và chuyên nghiệp là điều mà ...

Dịch vụ cài đặt blog bằng WordPress miễn phí

Dịch vụ cài đặt blog bằng WordPress miễn phí

Website là một công cụ không thể thiếu khi bán hàng online, nó giúp ta…

Bài 06: Tạo trang quản lý Options trong WordPress

Bài 06: Tạo trang quản lý Options trong WordPress

Ở bài trước mình có nêu ra một ví dụ về quản lý thông tin…

Bài 04: Tìm hiểu Hooks , Action và Filter trong WordPress

Bài 04: Tìm hiểu Hooks , Action và Filter trong WordPress

Bạn đã từng nghe khái niệm lập trình hướng sự kiện trong các Framework như…

Bài 02: WordPress API là gì? Danh sách API trong WordPress

Bài 02: WordPress API là gì? Danh sách API trong WordPress

Đáng lẽ mình không viết bài này nhưng lúc đang viết bài tiếp theo thì…

Cách tùy biến theme WordPress căn bản cho người mới bắt đầu

Cách tùy biến theme WordPress căn bản cho người mới bắt đầu

Khi [cài đặt WordPress trên Hosting] xong thì bạn có thể cài đặt theme để…

Hướng dẫn làm website WordPress chạy tiếp thị liên kết với AT

Hướng dẫn làm website WordPress chạy tiếp thị liên kết với AT

Ngày nay, công nghệ ngày càng phát triển dẫn đến khái niệm [tiếp thị liên…

Tổng hợp mã CSS thường dùng để tùy biến theme WordPress

Tổng hợp mã CSS thường dùng để tùy biến theme WordPress

WordPress là một CMS dùng để làm website rất phổ biến, hay nói chính xác…

Đánh giá GeneratePress - Cách sử dụng theme GeneratePress

Đánh giá GeneratePress - Cách sử dụng theme GeneratePress

Nếu bạn đang muốn tìm kiếm một theme với các tiêu chí nhẹ, nhanh và…

Làm blog cá nhân bằng WordPress với theme GeneratePress

Làm blog cá nhân bằng WordPress với theme GeneratePress

Thời gian qua chắc hẳn bạn đã nghe đến theme GeneratePress rồi phải không nào?…

Cài đặt WordPress trên localhost

Cài đặt WordPress trên localhost

WordPress được lập trình bằng ngôn ngữ PHP và sử dụng MySQL để lưu trữ,…

Bài 01: WordPress là gì? Nên làm website bằng WordPress?

Bài 01: WordPress là gì? Nên làm website bằng WordPress?

WordPress là một CMS được phát triển trên ngôn ngữ lập trình PHP ...

Tặng license theme Generatepress khi mua Hosting Tinohost

Tặng license theme Generatepress khi mua Hosting Tinohost

Chào các bạn, hiện nay WordPress đang trở thành một phổ biến nhất thế giới,…

12 Wordpress plugin tốt nhất nên dùng cho website WordPress 2021

12 Wordpress plugin tốt nhất nên dùng cho website WordPress 2021

Bạn vừa tạo một blog WordPress mới và đang phân vân không biết nên chọn…

Bài 12: Custom Taxonomy  trong WordPress

Bài 12: Custom Taxonomy trong WordPress

Bài trước mình đã hướng dẫn bạn tạo một thể loại bài viết mới bằng…

Bài 11: Tạo Custom Post Type trong WordPress

Bài 11: Tạo Custom Post Type trong WordPress

Đây là các thể loại mặc định có sẵn sau khi bạn cài đặt WordPress.…

Bài 10: Hiển thị metadata ngoài frontend

Bài 10: Hiển thị metadata ngoài frontend

Sẵn có bạn hỏi làm thế nào để hiển thị nội dung bài viết ra…

Bài 09: Bốn bước custom Meta Boxes trong WordPress

Bài 09: Bốn bước custom Meta Boxes trong WordPress

Tới bài thứ chín này thì khái niệm Custom Meta Boxes không còn xa lạ…

Bài 08: Metadata API trong WordPress

Bài 08: Metadata API trong WordPress

WordPress sử dụng mô hình EAV nhằm giúp lập trình viên có thể tùy biến…

Bài 07: Custom Meta Boxes trong WordPress

Bài 07: Custom Meta Boxes trong WordPress

WordPress là một CMS nên hệ thống dữ liệu của nó chỉ dừng lại ở…

Top