Thư viện TGM Plugin Activation
Đầu tiên, bạn cần tải thư viện TGM Plugin Activation.
Sau khi tải về, bạn sao chép tập tin class-tgm-plugin-activation.php vào thư mục bất kì trong Theme của bạn. Ví dụ mình sao chép vào thư mục inc, sau đó gọi lại trong functions.php.
include_once('inc/class-tgm-plugin-activation.php');
Khai báo các Plugin cần thiết
Cũng tại functions.php, các bạn thêm đoạn mã sau. Các bạn có thể tùy chỉnh danh sách Plugin tại biến $plugins nhé.
/**
* Khai báo các Plugin cần thiết
*/
add_action( 'tgmpa_register', 'my_theme_register_required_plugins' );
function my_theme_register_required_plugins() {
$plugins = array(
array(
'name' => 'Advanced Custom Fields',
'slug' => 'advanced-custom-fields',
'version' => '6.3.12',
'required' => true
),
array(
'name' => 'Advanced Database Cleaner',
'slug' => 'advanced-database-cleaner',
'version' => '3.1.5',
'required' => false
),
array(
'name' => 'Antispam Bee',
'slug' => 'antispam-bee',
'version' => '2.11.7',
'required' => false
),
array(
'name' => 'Classic Editor',
'slug' => 'classic-editor',
'version' => '1.6.7',
'required' => true
),
array(
'name' => 'Clean Image Filenames',
'slug' => 'clean-image-filenames',
'version' => '1.5',
'required' => false
),
array(
'name' => 'Index WP MySQL For Speed',
'slug' => 'index-wp-mysql-for-speed',
'version' => '1.5.2',
'required' => false
),
array(
'name' => 'Index WP Users For Speed',
'slug' => 'index-wp-users-for-speed',
'version' => '1.1.9',
'required' => false
),
array(
'name' => 'Manage Notification E-mails',
'slug' => 'manage-notification-emails',
'version' => '1.8.6',
'required' => false
),
array(
'name' => 'Modern Image Formats',
'slug' => 'webp-uploads',
'version' => '2.5.0',
'required' => false
),
array(
'name' => 'Nextend Social Login',
'slug' => 'nextend-facebook-connect',
'version' => '3.1.17',
'required' => false
),
array(
'name' => 'Redis Object Cache',
'slug' => 'redis-cache',
'version' => '2.5.4',
'required' => false
),
array(
'name' => 'Simple Cloudflare Turnstile',
'slug' => 'simple-cloudflare-turnstile',
'version' => '1.30.0',
'required' => false
),
array(
'name' => 'Solid Security Basic',
'slug' => 'better-wp-security',
'version' => '9.3.6',
'required' => false
),
array(
'name' => 'Speculative Loading',
'slug' => 'speculation-rules',
'version' => '1.4.0',
'required' => false
),
array(
'name' => 'The SEO Framework',
'slug' => 'autodescription',
'version' => '5.1.2',
'required' => false
),
array(
'name' => 'Ultimate Member',
'slug' => 'ultimate-member',
'version' => '2.10.1',
'required' => true
),
array(
'name' => 'Ultimate Member - Online',
'slug' => 'um-online',
'version' => '2.2.2',
'required' => false
),
array(
'name' => 'Ultimate Member - Optimize and Color',
'slug' => 'um-optimize',
'version' => '1.3.3',
'source' => 'https://github.com/umdevelopera/um-optimize/archive/master.zip',
'required' => false
),
array(
'name' => 'W3 Total Cache',
'slug' => 'w3-total-cache',
'version' => '2.8.6',
'required' => false
),
array(
'name' => 'WP Crontrol',
'slug' => 'wp-crontrol',
'version' => '1.18.0',
'required' => false
),
array(
'name' => 'WP Mail SMTP',
'slug' => 'wp-mail-smtp',
'version' => '4.4.0',
'required' => false
)
);
$config = array(
'id' => 'tgmpa',
'default_path' => '',
'menu' => 'tgmpa-install-plugins',
'parent_slug' => 'plugins.php',
'capability' => 'edit_theme_options',
'has_notices' => false,
'dismissable' => true,
'dismiss_msg' => 'Bạn cần cài các Plugin cần thiết để đảm bảo chủ đề hoạt động ổn định.',
'is_automatic' => false,
'message' => '',
'strings' => array(
'page_title' => __( 'Cài đặt các Plugin cần thiết', 'theme-slug' ),
'menu_title' => __( 'Plugin cần thiết', 'theme-slug' ),
'installing' => __( 'Đang cài Plugin: %s', 'theme-slug' ),
'updating' => __( 'Đang cập nhật Plugin: %s', 'theme-slug' ),
'oops' => __( 'Có gì đó không ổn với API của Plugin.', 'theme-slug' ),
'notice_can_install_required' => _n_noop(
'Chủ đề này yêu cầu Plugin sau: %1$s.',
'Chủ đề này yêu cầu các Plugin sau: %1$s.',
'theme-slug'
),
'notice_can_install_recommended' => _n_noop(
'Chủ đề này đề xuất Plugin sau: %1$s.',
'Chủ đề này đề xuất các Plugin sau: %1$s.',
'theme-slug'
),
'notice_ask_to_update' => _n_noop(
'Plugin sau đây cần được cập nhật lên phiên bản mới nhất để đảm bảo khả năng tương thích tối đa với chủ đề này: %1$s.',
'Các Plugin sau đây cần được cập nhật lên phiên bản mới nhất để đảm bảo khả năng tương thích tối đa với chủ đề này: %1$s.',
'theme-slug'
),
'notice_ask_to_update_maybe' => _n_noop(
'Có một bản cập nhật có sẵn cho: %1$s.',
'Có bản cập nhật cho các Plugin sau: %1$s.',
'theme-slug'
),
'notice_can_activate_required' => _n_noop(
'Plugin bắt buộc sau đây hiện không hoạt động: %1$s.',
'Các Plugin bắt buộc sau đây hiện không hoạt động: %1$s.',
'theme-slug'
),
'notice_can_activate_recommended' => _n_noop(
'Plugin được đề xuất sau đây hiện không hoạt động: %1$s.',
'Các Plugin được đề xuất sau đây hiện không hoạt động: %1$s.',
'theme-slug'
),
'install_link' => _n_noop(
'Bắt đầu cài đặt Plugin',
'Bắt đầu cài đặt các Plugin',
'theme-slug'
),
'update_link' => _n_noop(
'Bắt đầu cập nhật Plugin',
'Bắt đầu cập nhật các Plugin',
'theme-slug'
),
'activate_link' => _n_noop(
'Bắt đầu kích hoạt Plugin',
'Bắt đầu kích hoạt các Plugin',
'theme-slug'
),
'return' => __( 'Quay lại Trình cài đặt Plugin cần thiết', 'theme-slug' ),
'plugin_activated' => __( 'Plugin đã được kích hoạt thành công.', 'theme-slug' ),
'activated_successfully' => __( 'Plugin sau đây đã được kích hoạt thành công:', 'theme-slug' ),
'plugin_already_active' => __( 'Không có hành động nào được thực hiện. Plugin %1$s đã hoạt động.', 'theme-slug' ),
'plugin_needs_higher_version' => __( 'Plugin chưa được kích hoạt. Cần có phiên bản cao hơn của %s cho chủ đề này. Vui lòng cập nhật Plugin.', 'theme-slug' ),
'complete' => __( 'Tất cả Plugin đã được cài đặt và kích hoạt thành công. %1$s', 'theme-slug' ),
'dismiss' => __( 'Bỏ qua thông báo này', 'theme-slug' ),
'notice_cannot_install_activate' => __( 'Có một hoặc nhiều Plugin bắt buộc hoặc được khuyến nghị để cài đặt, cập nhật hoặc kích hoạt.', 'theme-slug' ),
'contact_admin' => __( 'Vui lòng liên hệ với người quản lý trang web này để được trợ giúp.', 'theme-slug' ),
'nag_type' => ''
)
);
tgmpa( $plugins, $config );
}
Gợi ý khi sử dụng
- Những plugin từ GitHub cần có
sourceURL và thường phải bật cài từ file zip. - Plugin có
required => truesẽ bắt buộc người dùng cài và kích hoạt trước khi sử dụng theme. - Nếu bạn viết theme thương mại hoặc làm dịch vụ, nên để
has_notices => trueđể người dùng biết cần làm gì.
Kết luận
TGM Plugin Activation giúp bạn tự động hóa quy trình cấu hình môi trường WordPress khi dùng theme. Bạn có thể dùng cho dự án cá nhân, khách hàng, hoặc bán theme đều phù hợp.
Chúc các bạn thành công!
Bình luận