Hướng dẫn tạo custom widget cho plugin WPBakery
https://wolfactive.dev/huong-dan-tao-custom-widget-cho-plugin-wpbakery/
Last updated
Was this helpful?
https://wolfactive.dev/huong-dan-tao-custom-widget-cho-plugin-wpbakery/
Last updated
Was this helpful?
Chào các bạn, ở bài này WolfActive tụi mình sẽ cho ra một bài viết liên quan đến WPBakery. Chắc hẳn đối với các bạn sử dụng WP dạng kéo thả, thì cũng không xa lạ gì nhiều với WPBakery nhỉ? Tuy nhiên hẳn sẽ có những Widgets mà bạn không ưng ý hoặc bạn không tìm thấy widgets mình cần. Thì bây giờ tụi mình sẽ chỉ cho các bạn qua bài Hướng dẫn tạo plugin widgets extend WPBakery.
Đầu tiên các bạn cần phải tạo một plugin của chính bạn để có thể extend widgets của WPBakery. Như ở hình dưới, mình tạo một folder Plugin tên wa-add-on-wp-bakery. Trong folder này mình có tạo một file tên plugin.php.
Trong file plugin.php các bạn ghi những dòng sau vào comment.
Các dòng comment trên là các thông tin cần thiết để đặt tên và thông tin của plugin các bạn. Bây giờ kế tiếp các bạn cần tạo một class để tạo plugin
Trong folder widgets, mình có tạo một file text-box-widget.php.Ở file này mình tạo một class WaTextBoxWidgets và kế thừa class WPBakeryShortCode của WPBakery. Sau đó mình tạo function construct, và một function create shortcode.Trong function create shortcode, mình sẽ kiểm tra xem có Visual Composer (WPB_VC_VERSION) hay không. Sau đó mình sử dụng một hàm vc_map() để tạo field cho widgets (các bạn có thể xem thêm các field của nó tại đây). Ở đây mình tạo ba field: Text field, link, image.Sau đó mình bắt đầu render nó ra ngoài html, bằng cách tạo một function render_shortcode(). Tại đây mình tạo một array lấy thông tin, nội dung từ các param_name mà mình tạo trước đó để truyền vào một biến $atts. Rồi mình gán từng giá trị, nội dung, thông tin vào các biến như trên.Sau khi gán xong, mình bắt đầu việc lưu content lại bằng hàm ob_start và kết thúc nó bằng ob_end_clean và lưu nội dung bằng ob_get_contents. Các bạn có thể thấy trong lúc mình lưu content lại mình có include một file là text-box-template.php để dễ dàng render html ra hơn.
Và đây là file text-box-template.php của mình
Và đây là thành phẩm:
Bên cạnh đó mình sẽ hướng dẫn thêm các bạn về cách include file js và css vào plugin. Các bạn có thể add nó vào sau ob_start()
Như vậy là mình đã hướng dẫn các bạn xong việc tạo plugin tạo Widgets từ extend WPBakery rồi. Chúc các bạn thành công nhé, mọi thông tin thắc mắc các bạn cứ liên hệ fb tụi mình nhé.
Ở đây mình đặt một class tên Wa_Add_On_WpBakery. Chắc hẳn các bạn cũng biết đến OOP nhỉ?! Bên trong class mình sẽ tạo một function construct. Tức đây là hàm khởi tạo khi plugin được hoạt đông.Bên cạnh đó mình có tạo hai function, Một là check_condition(), đây là function dùng để check xem các bạn có cài và active plugin WPBakery hay chưa (ở đây trong js_composer.php chính là WPBakery đó) bên cạnh đó xem có Visual Composer hay không? Nếu cả một trong hai không thỏa điều kiện, thì sẽ báo lỗi như ở trong function.Hai là function include_widgets(), trong function này mình có tạo một biến $dir=__DIR__ là đường dẫn thư mục ngay tại file đang viết, các bạn có thể đọc thêm ở đây