【问题标题】:WordPress Plugin: Need to fire off a function immediately after the plugin is activatedWordPress 插件:需要在插件激活后立即触发功能
【发布时间】:2011-06-20 21:58:15
【问题描述】:

我需要我的插件在插件安装后立即运行一个功能。我需要在安装之后而不是在安装期间运行该功能的原因是因为在激活插件“之后”之前没有任何挂钩起作用,我需要与第三方服务器进行一些额外的安装同步,我需要这些挂钩。

到目前为止,我还没有找到任何可以满足我要求的东西。 crons 功能,据我所知和法典所说,只有在有人访问该站点后才会触发。这是一个“不不”。该插件不能等待一些“随机”时间。这甚至可能是一个严重的安全风险。

【问题讨论】:

    标签: wordpress plugins installation cron


    【解决方案1】:

    瑟兰,我也有同样的问题。我还没有想出一个很好的解决方案,所以我正在做的是插件激活我正在设置一个 update_option,然后一旦访问设置页面,我正在检查 get_option 以检查我的一个-time 设置,如果存在,我会触发该功能并删除选项。现在这并不完全适合您,但是...您也许能够弄清楚如何应用此过滤器:

    http://adambrown.info/p/wp_hooks/hook/install_plugin_complete_actions?version=3.0&file=wp-admin/includes/class-wp-upgrader.php

    或者你也许可以使用我的方法。试试这个:

    register_activation_hook(__FILE__, 'initialize_my_function');
    function initialize_my_function() {
        add_option('run_my_initialization',"1");
    }
    
    add_action('admin_init', 'launch_activation_script');
    
    function launch_activation_script() {
        if (get_option('run_my_initialization') == "1") {
            //Do Your Init Stuff Here
            delete_option('run_my_initialization');
        }
    }
    

    【讨论】:

    • 这不是一个坏建议。我想现在必须这样做。
    【解决方案2】:

    你能用register_activation_hook吗?

    【讨论】:

    • 这是我目前用来启动插件安装过程的钩子。在该钩子返回之前,我的插件中的其他钩子不会触发,这是我遇到的问题。我需要一些其他钩子在运行 register_activation_hook 时或之后立即触发。
    猜你喜欢
    • 1970-01-01
    • 2019-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-09
    • 1970-01-01
    • 2014-11-05
    • 2017-11-11
    相关资源
    最近更新 更多