9 điều quan trọng dành cho những ai phát triển Wordpress.
Wordpress - cái tên không còn xa lạ với giới thiết kế web Việt Nam từ mấy năm nay nữa. Tuy không phải tất cả ai cũng có thể sử dụng Wordpress với tư cách như một nhà phát triển nhưng sự phát triển mạnh mẽ của Wordpress là một điều không phải bàn cãi.
Dưới đây là một vài lưu ý nho nhỏ dành cho những bạn mới làm quen với WP và ngay cả những nhà phát triển plugin WP thực thụ đang có trên VNWebmaster.COM
1. không nên sử dụng hàm query_posts()
Vì rất nhiều lý do, mình khuyên mọi người không nên sử dụng hàm query_posts() - hàm mà hiện nay mình thấy rất nhiều theme của Việt Nam vẫn còn đang xài. Đây là một hàm lặp đơn giản của Wordpress nhưng lại được xây dựng dựa trên Query code. Nó sẽ chạy rất nhiều hoạt động nền bên dưới trước khi gọi get_posts() và sau đó lại gọi rất nhiều đoạn mã để dọn dẹp đống lộn xộn này.
Trong một khoảng thời gian rất ngắn, WP sẽ gọi load những query chính của hệ thống trước, sau đó mới gọi tập tin giao diện và tải những query trong tập tin giao diện đó. Vì vậy, nếu bạn gọi query_post() trong file index.php của bạn thì thực tế nó đã được gọi tới 2 lần ngay khi bạn gọi nó lần đầu tiên. Nghĩa là thực tế số lần query chạy dưới nền sẽ là 8 (mỗi WP_Query sẽ thực hiện 4 truy vấn : gọi posts, count posts, gọi metadata, gọi terms).
Vậy những việc bạn nên làm là gì:
- Sử dụng WP_Query object bất cứ khi nào bạn cần nhiều vòng lặp trên một trang, cho dù là trong vòng lặp con hay bên ngoài vòng lặp mẹ. Tóm lại chỗ nào có thể xài được thì cứ xài.
- Sử dụng pre_get_posts để filter và sửa đổi vòng lặp chính(trong khá nhiều trường hợp bạn đã xài query_posts). Chỉ cần cho pre_get_posts chạy qua khi cần đổi trực tiếp đối tượng WP_Query(thay vì phải thực hiện một truy vấn mới).
- Sử dụng get_posts() nếu bạn không cần đến việc lặp dữ liệu.
2. Luôn sử dụng wp_enqueue_script cho script và style
Khi bạn code một plugin, làm một giao diện mới...bạn thường xuyên phải tải thêm một file (js, css...) từ bên ngoài vào hệ thống WP. Nhưng WP có rất nhiều file và thư viện, chưa kể hệ thống plugin mà người dùng cài đặt cũng có thể trùng file với bạn (ví dụ như thư viện jquery). Trong trường hợp bạn gọi một thư viện JS 2 lần, layout của bạn có thể bị vỡ hoăc chịu ảnh hưởng khiến các hoạt động không còn trơn tru nữa.
Một giải pháp đơn giản là bạn đăng ký với Wordpress rằng bạn chỉ muốn tải 1 bản duy nhất của một script nào đó và nếu nó đã có rồi thì bạn không cần phải tải lại nó bằng hàm wp_enqueue_script(). Cách sử dụng tương tự đối với các file styles, CSS, hay HTML Bootstrap...
3. Cache
Nếu bạn là một người phát triển plugin, bạn nên biết các transients API - chúng cho phép bạn lưu trữ những tùy chọn của riêng bạn trong một khoảng thời gian ngắn. Vì vậy, bạn có thể lưu trữ những truy vấn không cần thiết phải duy trì liên tục để giảm tải hệ thống của mình. Ví dụ, bạn không cần thiết phải nhận phản hồi của khách hàng của bạn liên tục, bạn có thể thiết lập sau 20 phút một lần nhận phản hồi hoặc lâu hơn tùy bạn.
Điều tuyệt là nó có thể lưu trữ toàn bộ kết quả truy vấn của bạn, nếu blog của bạn có chu trình cập nhật mỗi ngày là 1 lần, bạn có thể thiết lập cache mỗi 12 tiếng một lần và blog của bạn vẫn tốt.
4. Biết tất cả các nguồn feed của bạn.
Hầu hết mọi người không dùng hết lượng feed mà họ có hoặc không biết tận dụng nó vào việc gì. Dưới đây là danh sách feed trên trang mà bạn có thể có được, hãy xem bạn có thể làm gì với số feed này.
- Chính: site.com/feed
- Comment(chung): site.com/comments/feed
- Comment cho bài: site.com/post-name/feed
- Categories & tags: site.com/category/categoryname/feed hoặc site.com/tag/tagname/feed
- Sử dụng nhiều category id: site.com/?cat=42,25,17&feed=rss2 hoặc site.com/?cat=-123&feed=rss2
- Tác giả: site.com/author/authorname/feed/
- Tìm kiếm: site.com/?s=searchterm&feed=rss2
- Custom Post Type: site.com/feed/?post_type=yourposttype
- Custom Taxonomy: site.com/feed/?post_type=custom_post_type_name&taxonomy_name=tax onomy
5. Thêm featured image vào feed
Cách làm tương đối đơn giản, nhưng kết quả thì sẽ rất tuyệt vời. Đặc biệt là khi người dùng của bạn đọc tin bằng các trình đọc RSS được định dạng. Đoạn mã sau sẽ làm được điều đó:
PS: tôi đã thử và chứng minh những điều này và giờ đến lượt các bạn nhé ... ^_^
Những ai quan tâm, hay có thắc mắc gì thì để lại feedback
.................còn 3 điều quan trong nhưng hẹn các bạn ở post tiếp theo nha.