仅在 WordPress 中激活和停用插件时运行 JS 文件
Posted
技术标签:
【中文标题】仅在 WordPress 中激活和停用插件时运行 JS 文件【英文标题】:Run JS file only on activation and deactivation of plugin in WordPress 【发布时间】:2017-06-24 06:15:39 【问题描述】:我创建了custom Divi module,然后将其转换为插件。 Divi 页面构建器保存 本地存储变量,因此在我清除本地存储之前,我的模块不会显示在模块列表中。 我添加了 JS 文件来清除存储并且它工作正常。 但我希望 js 只在激活和停用时运行。
下面是插件激活码
function angelleye_setup_For_paypal_divi_install()
// trigger our function that registers PayPal for Divi plugin.
angelleye_setup_for_paypal_divi();
register_activation_hook( __FILE__, 'angelleye_setup_For_paypal_divi_install' );
这就是我在插件中添加我的 js 文件的方式。
function paypal_divi_clear_local_storage ()
wp_enqueue_script( 'paypal_divi_clear_local_storage', plugins_url('assets/js/clear_local_storage.js',__FILE__ ));
add_action( 'admin_enqueue_scripts', 'paypal_divi_clear_local_storage', 9999 );
这里的 add_action 不是从激活函数调用的。
【问题讨论】:
【参考方案1】:创建添加自定义选项的新函数并在激活钩子上调用函数:
新功能
register_activation_hook( __FILE__, 'my_plugin_activation' );
function my_plugin_activation()
add_option( 'my_plugin_activation','just-activated' );
在初始化操作的时间设置下面的代码,这将在激活时间起作用:
function mycustom_plugin()
if( is_admin() && get_option( 'my_plugin_activation' ) == 'just-activated' )
delete_option( 'my_plugin_activation' );
wp_enqueue_script( 'paypal_divi_clear_local_storage', plugins_url('assets/js/clear_local_storage.js',__FILE__ ));
add_action( 'init', 'mycustom_plugin' );
【讨论】:
【参考方案2】:希望对你有帮助。
请在您的插件文件中包含这些行..
/*
Plugin Name: Plugin_Name
*/
class Plugin_Name /* Define the name of the plugin or file */
public function __construct()
add_action('wp_footer', array($this, 'enqueue_js_files'));
public function enqueue_js_files()
wp_register_script('clear_local_storage', plugins_url('clear_local_storage.js', __FILE__), array('jquery'), '', true);
wp_enqueue_script('clear_local_storage');
【讨论】:
感谢您的回答,但我只想运行 js 两次,插件激活时运行一次,插件停用时运行第二次。 我不确定,它是否有效,因为我没有测试过,但你可以测试一次。 在我的代码中将“add_action”行替换为“register_activation_hook”和“register_deactivation_hook”。我知道我在说傻话,但让我们试一次。以上是关于仅在 WordPress 中激活和停用插件时运行 JS 文件的主要内容,如果未能解决你的问题,请参考以下文章
我无法在 localhost 上激活我的 WordPress 插件