Tôi đang thiết lập một chủ đề con cho một số thành viên trong khoa của mình và là một phần của chủ đề, tôi muốn một số bổ trợ được kích hoạt tại thời điểm chủ đề được kích hoạt. Vì vậy, một cách tự nhiên, tôi đã sử dụng hành động after_setup_theme và gọi chức năng thiết lập của mình. Nó hoạt động rất tốt, ngoại trừ nó chạy trên MỌI yêu cầu (quản trị viên và những người khác). Tôi đã chứng minh điều này bằng cách thêm nó vào cuối chức năng thiết lập:
echo '<script type="text/javascript">alert("This action was run")</script>';
Và kết quả là nhận được cảnh báo javascript trên mọi yêu cầu quản trị viên và mọi yêu cầu giao diện người dùng (tôi có thiết lập mạng, vì vậy rõ ràng trên các trang web mà chủ đề này không hoạt động, nó không chạy chức năng)
Vì vậy, câu hỏi là, đây có phải là một lỗi? Có phải tôi đang làm gì đó sai? Đây là mã hoàn chỉnh mà tôi đang sử dụng:
add_action( 'after_setup_theme', 'fwp_setup' );
function fwp_setup(){
// -- Unrelated code remove for the sake of brevity
require_once($_SERVER['DOCUMENT_ROOT'].'/wp-admin/includes/plugin.php');
activate_plugin('enable-media-replace/enable-media-replace.php');
activate_plugin('seo-image/seo-friendly-images.php');
activate_plugin('w3-total-cache/w3-total-cache.php');
echo '<script type="text/javascript">alert("This action was run")</script>';
}
Bất kỳ cái nhìn sâu sắc sẽ được nhiều đánh giá cao!
after_switch_theme
thực hiện chính xác những gì tôi dự định ở đây. Nó kích hoạt sau khi chủ đề được chuyển sang chủ đề của bạn. Một trong những giải pháp được đề cập dưới đây sử dụngswitch_theme
. Điều này không có kết quả mong muốn, vì nó chỉ xảy ra khi chuyển khỏi chủ đề của bạn. Tham khảo bình luận Trac này