Kinh nghiệm của mình plugin chiếm đến 50% đến 60% tốc độ load của website WordPress, hôm nay mình sẽ hướng dẫn chia sẻ các tối ưu làm giảm sự tác động nặng nề plugin của WordPress với website của bạn.
Giúp website của bạn tăng tốc rất đáng kể.
Tải điều kiện mu-plugin là gì
Tải điều kiện mu-plugin hiểu đơn giản là tôi chỉ sử dụng plugin này trên với trang này, nhưng nếu không tải điều kiện thì dù là bạn sử dụng hay không nó vẫn tải làm giảm tốc độ load website của bạn.
Mình ví dụ: bạn chỉ sử dụng plugin contact form 7 chỉ sử dụng mỗi trang đăng ký, nhưng nếu bạn không tải điều kiện nó load ở khắm mọi nơi từ trang chủ đến cả trang đăng nhập, blog… Vì mỗi một trang đăng ký đó làm giảm tốc độ load website của bạn chỉ vì chưa áp dụng kỹ thuật tải điều kiện.
(tải điều kiện có thể từ bản thân plugin tác giả đã viết code tối ưu làm cho bạn truy nhiên cũng ít trường hợp đó vì bản thân tác giả viết code plugin họ cũng không biết là bạn sử dụng plugin của họ viết nên cho trang nào.
Vì vậy bạn cần phải phải tự làm điều đó, tải điều kiện thông thường may mắn thì tác giả plugin sẽ tối ưu nhưng còn mu-plugin thì gần như là không thể)
mu-plugin để tải điều kiện plugin, kỹ thuật tải điều kiện thông thường chỉ tải điều kiện javascript hay css còn php thì không, nhưng mu-plugin thì làm được hết.
Đúng nghĩa hơn là với mu-plugin là bật tắt điều kiện.
Mu-plugin là một kỹ thuật rất hay gần như những cao thủ WordPress thì mới biết và sử dụng nó đa phần những người dùng phổ thông còn không biết sự tồn tại của nó. (bạn có thể tìm hiểu: mu-plugin là gì? )
Đây là một tính năng ẩn của WordPress tích hợp sẵn trong WordPress core để phục vụ một số công việc đặc biệt.
Mu-plugin được WordPress sinh ra để tải trước plugin, và tải trước themes còn tải trước để làm gì thì có rất nhiều những kỹ thuật hay được ra đời từ đó, như tạo cache … làm đủ thứ nhưng bài viết này mình sẽ hướng dẫn các bạn sử dụng mu-plugin để bật tắt plugin.
Mình sẽ làm ví dụ trên plugin contact form 7, vì đơn giản nó áp dụng thực tế nhất với mu-plugin và plugin này rất nhiều người tải và sử dụng nhất WordPress và đặc biệt plugin contact form 7 bản thân nó tối ưu không được ngon dù bạn tải điều kiện javascript và css thì những php shortcode nó vẫn load khắm nơi nhiều người cũng không biết và để ý nhưng nó làm tác động rất lớn làm giảm tốc độ website của bạn đi rất nhiều.
contact form 7 phù hợp để triển khai mu-plugin
Nên mình sẽ làm ví dụ trên đây, nếu bạn có nhu cầu khác thì các bạn có thể chỉnh sửa theo mình hướng dẫn nhé.
Khi nào nên sử dụng kỹ thuật này
Kỹ thuật này chỉ bật tắt theo từng url vì vậy chỉ dành cho một số tính huống nhất định như bạn sử dụng plugin đó mà chỉ phục vụ 1 đến 2 trang … (như contact form 7,ninja form, plugin thanh toán … vân vân và mây mây)
Hướng dẫn triển khai mu-plugin
Mình sẽ chia sẻ kỹ thuât sự dùng mu-plugin để bật tắt điều kiện plugin.
contact form 7 dùng kỹ thuật này chỉ dành cho những bạn sử dụng chỉ một hoặc hai trang trên website mà thôi, tuy nhiên contact form 7 thì nó load shortcode php ở khắp mọi nơi, nếu bạn áp kỹ thuật tải điều kiện thông thường thì bạn chỉ tối ưu css và javascript còn php thì chưa.
Bạn chỉ cần làm kỹ thuật mu-plugins này là những kỹ thuật tối ưu tải điều kiện css hay javascript bạn bỏ qua và không cần thiết nữa, chỉ cần làm cái này là tối ưu được ngay rồi.
Giờ chúng ta bắt đầu:
Bước một chúng ta cần tạo một plugin đưa vào thư mục /wp-content/mu-plugins/ten-file.php
Nếu bạn chưa bao giờ sử dụng mu-plugin thì bạn vào thư mục /wp-content/ xong tạo một tên thư mục là mu-plugins là ok ( nhớ gõ chính xác từng ký tự nhé thì mới chạy được)
Giờ chúng ta cần tạo một file là ten-file.php bạn thích thay đổi tên là gì, mình chọn file là ten-file.php
giờ chúng ta một file php, bạn có thể sử dụng bất cứ trình soạn thảo nào cũng được, mình thì thường sử dụng notepad ++
<?php /** * Plugin Name: bật tắt điều kiện plugin contact form 7 * Plugin URI: https://wptangtoc.com * Description: bật tắt điều kiện plugin contact form 7 hướng dẫn * Version: 1.0 * Author: Gia Tuấn * Author URI: https://wptangtoc.com * License: GPLv2 or later */ $yeu_cau_url = parse_url( $_SERVER['REQUEST_URI'], PHP_URL_PATH ); $is_admin = strpos( $yeu_cau_url, '/wp-admin/' ); if( false === $is_admin ){ add_filter( 'option_active_plugins', function( $plugins ){ global $yeu_cau_url; $is_wp_tang_toc = strpos( $yeu_cau_url, '/gia-tuan/' ); $is_lien_he = strpos( $yeu_cau_url, '/lien-he/' ); $myplugin = "contact-form-7/wp-contact-form-7.php"; $k = array_search( $myplugin, $plugins ); if( false !== $k && false === $is_wp_tang_toc && false === $is_lien_he ){ unset( $plugins[$k] ); } return $plugins; } ); }
Mình code ví dụ là là sử dụng chỉ chạy trên 2 url là /gia-tuan/ và /lien-he/ bạn hãy thay chính xác url mà bạn muốn tải điều kiện nhé.
Xong rồi xuất một file dạng .php rồi đưa vào trong thư mục /wp-content/mu-plugins/
Giả sử mình xuất tên file là ten-file.php rồi đưa vào trong /wp-content/mu-plugins/ten-file.php như vậy là xong.
Ghi chú: bạn sử dụng mu-plugin thì không thể sử dụng được câu lệnh điều kiện php của WordPress như is_shop hay is_checkout… bạn chỉ có thể hàm điều kiện theo từng url, vì mu-plugin thứ tự tải ưu tiên sớm hơn plugin thông thường và sớm hơn themes functions.
Vì vậy kỹ thuật này chỉ dành cho những ai sử dụng contact-form 7 với ít trang thì rất tốt còn sử dụng nhiều muốn tải điều kiện câu lệnh thì rất khó.
Ví dụ trên là để bạn tối ưu triển khai xong plugin contact form 7 bây giờ mình sẽ hướng dẫn trên một plugin khác mình sẽ chia sẻ để các bạn có thể tự làm được theo ý của mình.
$myplugin = "contact-form-7/wp-contact-form-7.php";
Bạn truy cập vào đường dẫn wp-content/plugins website của bạn, mỗi một plugin bạn tải của WordPress thì đều bắt buộc phải có tên thư mục và một tập tin.php chính.
Trong ví dụ mình tối ưu plugin contact form 7:
contact-form-7 là tên thư mục của plugins của contact form 7
wp-contact-form-7.php là tập tin chính của plugin contact form 7
Bạn thay đổi đoạn code mẫu mình hướng dẫn đó bằng thư mục và đường dẫn php chính mà plugin mà bạn muốn tải điều kiện.
Đoạn code này mình code tạm thời chỉ chạy là 2 url cho một plugin nếu bạn có hiểu về php thì có thể code thêm thành nhiều hơn, nếu bạn không biết thì có thể liên hệ với mình mình sẽ code riêng dành cho bạn.
Nếu bạn muốn đo lường sự hiệu quả của mu-plugin bạn hãy sử dụng plugin p3 (plugin performance profiler) để kiểm tra xem nó hiệu quả đến cỡ nào.
Chúc bạn thành công!!
Để lại một bình luận