Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress

Các cách làm tốt nhất trong Phát triển WordPress, phần cuối

by
Length:MediumLanguages:

Vietnamese (Tiếng Việt) translation by Dai Phong (you can also view the original English article)

Chào mừng đến với phần cuối cùng của loạt bài này. Nếu bạn vừa mới đến, vùi lòng kiểm tra hai bài viết trước. Đến đây chúng tôi đã bao quát các chủ đề sau:

Các cách làm tốt nhất trong Phát triển WordPress, phần đầu

  • Các tiêu chuẩn viết code trong WordPress
  • Hạn chế đụng độ không gian tên (thêm tiền tố và sử dụng lớp)
  • Trích dẫn code
  • Bảo mật

Các cách làm tốt nhất trong Phát triển WordPress, phần hai

  • Thêm các script và style đúng cách (register, enqueue và localize)
  • Gọi hàm Ajax
  • Các filter và action

Trong bài viết cuối cùng này, tôi sẽ nói về ba thứ quan trọng mà cho dù chúng không ảnh hưởng đến hoạt động của plugin, nhưng chúng là cần thiết nếu bạn muốn phân phối một plugin có chất lượng.

1. Gỡ lỗi

Điều đầu tiên bạn nên làm khi viết một plugin là kích hoạt chế độ debug như lời khuyên của WordPress. Bằng cách đó bạn sẽ thấy tất cả các lỗi, cảnh báo và các vấn đề phát sinh.

Để kích hoạt chế độ debug đơn giản là đặt cái này vào trong tập tin wp-config.php của bạn

Một khi bạn nạp lại trang web bạn sẽ thấy tất cả các cảnh báo và lỗi phát sinh cùng với các thông điệp khác giống như các hàm bị phản đối trong WordPress. Nếu bạn muốn phân phối một sản phẩm có chất lượng thì hãy đảm bảo rằng việc sử dụng plugin của bạn với chế độ debug được kích hoạt hay tắt đi cho kết quả tương tự (không lỗi, không cảnh báo).

Nếu bạn muốn lưu lỗi vào trong một tập tin mà không hiển thị chúng trong HTML bạn có thể làm điều đó bằng cách thêm các dòng sau cùng với WP_DEBUG.

Một thiết lập debug khác mà tôi sử dụng nhiều là lưu tất cả các truy vấn dữ liệ trong một mảng như sau:

Thường thường tôi sử dụng tất cả những điều này (đặc biệt là cái cuối cùng) với plugin Debug Bar và Debug Bar console. Nếu bạn không biết chúng, hãy cài đặt và bắt đầu gỡ lỗi các plugin và theme của bạn. Bạn sẽ thấy làm điều đó dễ như thế nào.

Bạn cũng có thể kiểm tra danh sách các plugin mà tôi sử dụng để phát triển trong Wp Favs.

2. Tài liệu hướng dẫn

Viết tài liệu hướng dẫn mọi khía cạnh của plugin hoặc theme của bạn sẽ làm cho người dùng và cuộc sống của bạn sẽ trở nên dễ dàng hơn. Họ sẽ có thểm làm cho plugin hoặc theme hoạt động bằng cách theo dõi các hướng dẫn và video hoặc sự kết hợp cả hai và bạn sẽ tiết kiệm rất nhiều thời gian so với việc hỗ trợ và gởi email.

Tôi khuyên bạn nên chia tất cả tài liệu hướng dẫn theo mục hoặc phần theo thứ tự cái nào là quan trọng nhất.

  • Cài đặt
  • Cấu hình
  • Sử dụng nhanh
  • Vấn đề thông thường
  • Các yêu cầu

Tuỳ thuộc vào theme hoặc plugin mà bạn có thể thêm các phần hoặc mục còn lại. Nếu bạn kiểm tra trang tài liệu hướng dẫn của WordPress Social Invitations thì bạn sẽ thấy những gì tôi muốn nói.

Nếu bạn thêm các filter và hook như tôi đã đề cập trong bài trước thì một ý tưởng hay là tạo một filter/action tham chiếu đến trang giải thích những gì chúng làm. 

Tab trợ giúp

Tab trợ giúp là một cách khác để cung cấp sự trợ giúp đới với người dùng của bạn trực tiếp ngay trong plugin thay vì điều hướng họ đến trang web của bạn. Chúng thường được sử dụng để cung cấp thông tin về màn hình đang được sử dụng ở thời điểm hiện tại.

Ví dụ, trên một plugin của tôi được gọi là Social PopUP tôi sử dụng một tab trợ giúp để giải thích các shortcode hiện có.

Nếu bạn đang sử dụng một lớp trong plugin của bạn và bạn muốn thêm tab trợ giúp vào một custom post type thì bạn có thể làm như thế này:

Điều rất quan trọng là bạn kiểm tra xem ID của màn hình hiện tại có trùng với custom post type của bạn không nếu không tab trợ giúp sẽ xuất hiện ở mọi nơi,

Thay vì thêm một trang tuỳ chỉnh thì bạn có thể sử dụng code được sử dụng như là một ví dụ trong Codex.

Theo quan điểm các nhân của tôi các tab trợ giúp không hiện hữu đối với người dùng, và hầu hết họ không biết sự tồn tại của chúng, nhưng nó là một cách làm tốt để thêm một số dòng trợ giúp bên trong chính plugin.

3. Internationalization

Internationalization được biết đến như là i18n (có 18 ký tự giữa chữ i và n) nó là tảng băng ở trên cái bánh của một plugin hay theme. Như bạn biết WordPress nó được sử dụng bởi nhiều người trên thế giới, vì vậy tại thời điểm phân phối một plugin hay theme chúng ta cần đảm bảo rằng chúng có thể dễ dàng được dịch sang ngôn ngữ của họ.

Sự khác nhau giữa Internationalization và Localization là gì?

Đầu tiên, chúng ta nên học ý nghĩa của hai từ này đồng thời biết i18ni10n. Internationalization chỉ về quá trình tạo một plugin hoặc theme có thể được dịch sang các ngôn ngữ khác trong khi localization về cơ bản là hành động của việc đó.

WordPress xử lý việc dịch thuật như thế nào?

WordPress sử dụng thư viện gettext nổi tiếng được giải thích trong một vài từ, chúng ta có thể nói rằng các công việc như thế này:

  • Các nhà phát triển nhóm các chuỗi có thể dịch được trong các hàm gettext đặc biệt
  • Các công cụ phân tích tập tin mã nguồn và trích xuất các chuỗi có thể dịch được thành tập tin POT (Portable Objects Template)
  • Người dịch dịch các tập tin POT và kết quả là một tập tin PO (tập tin POT nhưng với các bản dịch bên trong)
  • Các tập tin PO được biên dịch thành các tập tin MO, cho phép truy xuất nhanh hơn các chuỗi lúc chạy.

Làm thế nào để tạo các chuỗi có thể dịch được?

Điều đầu tiên bạn cần làm là quyết định một text-domain mà sẽ được sử dụng để nhóm tất các bản dịch của plugin hoặc theme. Text-domain nên trùng với tên đại diện plugin của bạn.

Có nhiều cách để tạo các chuỗi có thể dịch được tuỳ thuộc vào việc bạn đang tạo các biến, xuất ra thứ gì đó, vv. Các hàm phổ biến nhất là __() và _e(). Hãy xem một số ví dụ bên dưới:

Một hàm tuyệt vời khác mà bạn có thể sử dụng là _n() được sử dụng cho số nhiều. Các hàm nhận 4 tham số:

  • số ít — hình thức số ít của chuỗi
  • số nhiều — hình thức số nhiều của chuỗi
  • đếm — số đối tượng, sẽ xác định khi nào là số ít hoặc số nhiều nên được trả về.
  • text domain — text-domain của plugin

Trở lại với ví dụ trước của chúng ta, với số nhiều sẽ trông giống như thế này:

Nếu bạn cần dịch các chuỗi trong JavaScript của bạn, bạn có thể truyền tất cả các chuỗi bằng cách sử dụng hàm wp_localize_script() mà chúng ta đã đề cập trong bài viết thứ hai của loạt bài này.

Cho phép dịch trong Plugin của chúng ta

Chúng ta đã thêm tất cả các chuỗi có thể dịch trong plugin của chúng ta và bây giờ là lúc kích hoạt nó. Để làm điều đó bạn chỉ cần:

Mẫu code này sẽ cố gắng nạp từ thư mục gốc một tập tin MO gọi là my-text-domain-{locale}.mo. Tuỳ thuộc vào nguôn ngữ được thiết lập trong wp-config.php thì phần {locale} sẽ được thay thế bằng mã ngôn ngữ của bạn. Ví dụ cấu hình wp-config.php của tôi là:

Tập tin sẽ được nạp là my-text-domain-es_ES.mo. Đối với theme cũng khá giống, bạn chỉ cần thêm vào tập tin functions.php như dưới đây:

Sự khác nhau chính là hàm này sẽ tìm tập tin {locale}.mo thay vì my_theme_textdomain-{locale}.mo như chúng ta đã thấy ở ví dụ trước.

Bạn có thể đọc thêm về i18n trong WordPress Codex.

Kết luận

Chúng ta đang ở phần cuối cùng của loạt bài này và tôi hy vọng bạn thích thú với nó giống như tôi thích thú khi viết nó vậy. Như tôi đã nói ở trên, tôi đã viết loạt bài suy nghĩ này về lúc tôi bắt đầu là một developer. Tôi cố gắng tập hợp tất cả các thông tin mà tôi xem là quan trọng để tạo một plugin tốt, tổng hợp chúng trong một tập hợn lớn về tất cả những gì được giải thích trong Codex. Cho dù tôi đã bỏ lại rất nhiều, nhưng tôi nghĩ nó đủ để có một nền tảng vững chắc.

Tôi muốn thấy bạn chia sẻ cảm nghĩ, các thủ thuật và ý tưởng của bạn cho việc phát triển WordPress trong phần bình luận ở dưới.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.