TODO: To change the header's content go to Dr.Explain menu Options : Project Settings : HTML (CHM) Export : Setup HTML Template and Layout
×
Menu
Index

Tạo widget với ACF

 
ACF là plugin tạo custom fields nổi tiếng trong wordpress, bài hôm nay mình hướng dẫn bạn tạo widget sử dụng kế thừa tính năng của acf field group.
 
Để có thể tạo widget với các fields của ACF, bạn cần cài đặt thêm plugin này:
https://github.com/alexvandervegt/advanced-custom-fields-widget/archive/master.zip
 
Cách 1: Sau khi kích hoạt plugin, bạn sẽ thấy nhóm acf mới có tên 'widget'.
 
Tạo nhóm trường sử dụng ACF như bình thường, bạn mở trang quản lý widgets và tìm widget ACF Widget, chọn nhóm trường và nhấn lưu, lúc này các trường của nhóm ACF bạn tạo với nhóm widgets được hiện lên.
Chú ý: sau khi chọn nhóm trường có tạo trong acf, bạn không thể đổi lại. Chỉ có thể xóa widget và tạo lại.
 
 
 
Cách 2:
Nếu bạn là một lập trình viên và muốn xây dựng riêng widgets, bạn có thể kế thừa lớp ACF_Widget. Với cách này bạn dễ dàng tạo nội dung widget.
Bằng cách kế thừa class ACF_Widget và chỉ định group ID.
class Spotlight_Widget extends ACF_Widget
{
     function __construct()
     {
          $widget_options = array(
               "classname"     => "spotlight_widget",
               "description"   => "Widget with image, title and a link."
               );
 
          parent::WP_Widget("Spotlight_Widget", "Spotlight", $widget_options);
 
          // This is the Group ID which will be preset in your custom widget
          $this->acf_group_id     = 110;
 
          // Want to show a title in the widget box, please fill in your title field key
          $this->title_field_key  = "title";
     }
 
     function widget($args, $instance)
     {
          // Variables
          $acf_key = "widget_" . $this->id_base . "_" . $this->number;
 
          // Widget HTML output
          echo "This is some widget HTML output";
     }
     function update($new_instance, $old_instance)
     { 
          return $new_instance; 
     }
}
 
$GLOBALS["acf_widget_types"][] = "spotlight_widget";
register_widget("Spotlight_Widget");
 
 
Sử dụng các hàm lấy giá trị từ plugin ACF như get_field, the_field để tạo nội dung hiển thị cho widget.
the_field("field_name", $acf_key);
get_field("fieldname", $acf_key);
 
Xem thêm cách lấy giá trị options của widget:
http://www.advancedcustomfields.com/resources/get-values-widget/
Made with help of Dr.Explain

Unregistered version