apkm-search

Viết plugin hiển thị thông tin tác giả bên dưới bài viết

Hôm nay mình sẽ hướng dẩn các bạn cách viết một plugin đơn giản để hiển thi thông tin của tác giả bên dưới mổi bài viết của họ.

Ngày nay thì blog không còn là 1 trang cá nhân nữa, nhiều blog đã cho các người khác đăng ký làm Guest Blog để viết bài và đăng lên blog của mình.Hôm nay mình sẽ hướng dẩn các bạn cách viết một plugin đơn giản để hiển thi thông tin của tác giả bên dưới mổi bài viết của họ.

Thông tin của tác giả đã được bổ sung

Nếu như thông tin về tác giả chưa có thì bạn có thể bổ sung bằng cách truy cập vào trang admin của wordpress -> chọn User -> All User -> Chọn user cần sửa thông tin.Ví dụ như thông tin của mình:

biographical

Tạo file plugin

Truy cập FTP và thêm vào tập tin nqd-author.php và thư mục wp-content/plugins  ,đây là file plugin của chúng ta.Nhưng trước hết chúng ta cần khai báo một số thứ để WordPress có thể hiểu được plugin sẽ làm gi.

 Functions & Actions

Tiếp theo chúng ta sẽ tạo những function và action sau:

Đây là một số hàm cần thiết cho plugin của chúng ta hoạt động.Mổi function có một chức năng riêng như comment bên dưới.

Khi viết plugin, điều quan trọng nhất là chúng ta cần biết “hook” là gì ? Hook là một vị trí mà chúng ta có thể can thiệp vào trong quá trình chạy của wordpress và thực hiện các hàm của chúng ta.Ví dụ như author_bio_display functions này sẽ được gọi khi WordPress sử dụng functions the_content .

Mình sẽ giải thích các hook sử dụng trong bài hướng dẩn này:

  • the_content – Hiển thị nội dung của bài viết/page.
  • admin_menu – Được gọi khi sidebar trong trang admin được tạo.
  • wp_head – Chèn code vào thẻ head.Đây là lý do ta dùng wp_head() trong quá trình làm theme cho wordpress.

Hàm hiển thị

Đây là hàm quan trọng vì nó sẽ giúp hiển thị thông tin tác giả bên dưới bài viết.Chú ý quan trọng trong phần này là tham số đầu vào $content .Điều này có nghĩa là nội dung của bài viết / page sẽ đi vào hàm của chúng ta, và chúng ta có thể thêm phần hiển thị thông tin tác giả.

Như bên trên chúng ta check hàm if  ở đây có nghĩa là chỉ hiển thị thông tin ở bài viết hoặc ở page còn nếu không phải thì return nội dung bình thường.Bây giờ chúng ta sẽ thêm vào đoạn code để hiển thị phần tác giả và biến $bio_box.

Bạn hoàn toàn có thể thay đổi đoạn code này theo ý mình.Nhưng trong bai này mình sẽ hướng dẩn các bạn đơn giản thôi.Còn bạn muốn thêm thông tin gì thì có thể tham khảo ở đây WordPress Codex.Ở đây chúng ta cần chú ý đến hàm get_avatar() đây là hàm viết sẳn của WordPress  giúp chúng ta lấy được avatar dựa vào email của tác giả nếu tác giả có đăng ký gravatar, chúng ta chỉ cần cung cấp email của tác giả và kích thước của avatar.

Và plugin của chúng ta đã chạy được rồi:

chua css

Tuy là không đẹp cho lắm nhưng plugin đã hoạt động.Nếu có vấn đề gì thì bạn nên chắc chắn các thông tin của tác giả có đầy đủ không và chắc chắn là đã kích hoạt plugin chưa.Nếu chưa kích hoạt thì bó tay :D.

Làm đẹp

Bây giờ bắt đầu làm đẹp thôi :p

Đây là đoạn CSS đơn giản.Nếu bạn đã biết về CSS thì có thể style lại theo ý của bạn.Sau khi thêm css vào thì sẽ được như thế này:

css

Đã khá hơn chút rồi.

Thêm trang Setting

Tại sao chúng ta cần trang Setting ? Vì chúng ta cần sự linh hoạt ví dụ như chọn vị trí để hiển thị(trên hoặc dưới) , màu sắc,….Ở bài này mình sẽ hướng dẩn các bạn cho phép hiển thị ở cuối bài viết,cuối page hoặc cả hai.

Đoạn code bên dưới giúp ta đăng ký 1 trang để làm trang setting cho plugin của chúng ta.

Các tham số đầu vào gồm:

  • Menu Name – NQD Author
  • Page Title – NQD Author
  • Access Privilege – 9 chỉ cho phép admin thấy
  • Handle
  • author_bio_settings() gọi hàm hiển thị form và update thông tin vào database

Đã có page rồi thì giờ chúng ta cần tạo form để hiển thị các lựa chọn để sử dụng plugin.Vì form có submit nên chúng ta cần lưu lại giá trị cũ để hiển thị ra.

Và bây giờ bạn vào phần Setting -> NQD Author sẽ thấy được form của chúng ta đã xuất hiện. Nhưng chỉ mới là nhận thông tin từ database thôi chứ chưa update được,không tin bạn cứ nhấn Save changes thử đi. Giờ chúng ta cần viết thêm để nó update vào database và hiện một thông báo update thành công.

Nếu người dùng chọn vào checkbox thì chúng ta cần lưu giá trị đó vào database như là ‘checked’ và get_option() và upadte_option() sẽ giúp chúng ta lấy và update giá trị của các options.

author setting

Chúng ta sẽ thêm code để có thể update giá trị vào database được.Thêm đoạn code này trên đầu functions author_bio_settings() 

Ý nghĩa của đoạn code trên là nếu form được submit thì đoạn code này sẽ kiểm tra là 2 cái option có được chọn hay không.Nếu có chọn thì update giá trị là checked còn không chọn thì để trống.Và cuối cùng là một thông báo đã lưu thành công.

Đã hoàn thành việc tạo trang setting,giờ chúng ta sẽ gắn các option vào hàm hiển thị để cho nó hoạt động.Nếu không làm trang setting chẳng có ý nghĩa gì cả.

Để gắn option vào thì chúng ta cần lấy được giá trị của các option ở trang setting

Chúng ta đã có được giá trị của option giờ chúng ta thay đổi điều kiện if một chút:

Câu lệnh phía trên có nghĩa là nếu đang ở trang single.php và option post  được chọn hoặc ở page và option của page được chọn thì hiển thị.

Chúng ta đã hoàn thành việc viết một plugin đơn giản rồi đó.Chúng ta cùng xem qua toàn bộ code của plugin này

 

Bài viết dài quá, mong các bạn thông cảm nha ! Chúc các bạn thành công.

P/S: do mình có dùng Bootstrap + FontAwesome nên có thể bạn làm xong không giống của mình lắm :p

BÌNH LUẬN BÀI VIẾT

Leave a Reply

Be the First to Comment!

Notify of
avatar
wpDiscuz