是否有仅在插件激活时执行javascript文件的选项

时间:2019-07-26 作者:upss1988

我正在为WordPress创建一个自定义插件,并尝试执行javascript 插件激活后,只需提交一次文件。

我正在使用register_activation_hook()wp_enqueue_script() 在插件激活时只执行一次文件。

javascript 如果在register_activation_hook().

这就是我迄今为止所尝试的:

register_activation_hook( __FILE__, \'full_install\' );
function full_install() {
    function rest_api() {
        wp_enqueue_script(\'activation_data_api\', plugins_url(\'assets/js/activation_data_api.js\', __FILE__));
    }
    add_action( \'admin_enqueue_scripts\', \'rest_api\' );
}
最后,插件需要执行javascript 仅在激活后归档一次。

1 个回复
最合适的回答,由SO网友:upss1988 整理而成

以下是解决方案:

register_activation_hook( __FILE__, \'rest_api_hook\' );

/**
 * Runs only when the plugin is activated.
 */
function rest_api_hook() {

    /* Create data */
    set_transient( \'rest_api\', true, 5 );
}

/* Add notice */
add_action( \'admin_notices\', \'rest_api_hook_exec\' );

/**
 * Rest API Notice on Activation.
 */
function rest_api_hook_exec() {

    /* Check transient, if is available display notice */
    if( get_transient( \'rest_api\' ) ) { 

        // Execute script
        wp_enqueue_script(\'activation_data_api\', plugins_url(\'assets/js/activation_data_api.js\', __FILE__));

        // Delete script after executing
        delete_transient( \'rest_api\' );
    }
}

相关推荐

如何在PHP中从块属性序列化Gutenberg块?

我正在编写一个迁移脚本,它必须读取帖子的post\\u内容,然后动态更改一些自定义Gutenberg块的一些属性。我能够读取post\\u内容,然后使用parse_blocks 作用我还能够通过操纵块对象动态更改自定义块的属性。但我无法将这些块对象转换为Gutenberg用来序列化它们以便更新post\\u内容的特殊HTML注释。我发现WordPress core的PHP部分只有parse_blocks 函数将特殊HTML注释解析为块对象,并render_block 函数来渲染块,但没有serialize