我通常喜欢在服务器端做这种工作,因为用现代调试工具在客户端绕过JavaScript太容易了,但这是一个独特的问题,可能适合您的用例(取决于您的受众)。
使用纯JavaScript,您可以执行以下操作:
在主题目录的根目录中创建一个JavaScript文件,并将其命名为“upload.js”
向其中添加以下代码(请务必阅读注释):(function($) {
$(function() {
// Check to verify that we\'re on the "Install Themes" page
var $upload = $(\'#install-theme-submit\');
if($upload.length > 0) {
// Watch for the user to click on the upload button
$upload.click(function(evt) {
// When they do, get the name of the file they\'ve uploaded
var sFilePath = $(\'input[type=file]\').val();
var aFilePath = sFilePath.split(\'\\\\\');
sFilePath = aFilePath[aFilePath.length - 1];
// If it\'s equal to updated, let them know:
if(sFilePath.toLowerCase() === \'upgrader.zip\') {
// Create a WordPress-style notification and add it to the screen
$(\'h4\').before(
$(\'<div />\')
.append(
$(\'<p />\')
.text("Do not upload this file.")
).attr(\'class\', \'updated\')
);
// Stop the upload
evt.preventDefault();
} // end if
});
} // end if
});
})(jQuery);
将以下内容添加到主题的功能中。php。这将把脚本加载到主题中:function custom_upload_script() {
wp_register_script(\'admin-upload-script\', get_template_directory_uri() . \'/upload.js\');
wp_enqueue_script(\'admin-upload-script\');
} // end custom_upload_script
add_action(\'admin_enqueue_scripts\', \'custom_upload_script\');
如果您想纯服务器端,那么no hook 用于管理主题激活操作;但是,您可以利用switch_theme
行动这纯粹是推测,但一旦动作触发,您就可以从文件中读取一些信息,然后恢复到以前使用的主题。