【问题标题】:Running WordPress plugin periodically to import data定期运行 WordPress 插件以导入数据
【发布时间】:2011-12-12 22:49:16
【问题描述】:

情况如下:我有一个程序生成.csv 文件,其中包含标题和帖子文本字段(根据http://wordpress.org/extend/plugins/csv-importer/other_notes/)。如果需要,我实际上可以修改程序的输出。

我现在可以手动登录 WordPress 管理控制台,转到 CSV 导入器插件选项卡,选择文件并导入文件中包含的文章。

但是,我想自动运行这个任务——一切都将在服务器上运行(应用程序生成 (CSV) 数据、应用程序/脚本导入数据),而不是远程文件上传等......知道该怎么做吗?

【问题讨论】:

  • 源代码的大部分在这里:plugins.svn.wordpress.org/csv-importer/tags/0.3.6/…——看起来大部分工作都是从function post()开始的。乍一看,我不认为有一种简单的方法可以自动执行此操作——您要么必须通过 cURL 模拟表单 POST(这可能很复杂且容易出错),要么编写自己的版本post() 函数的一部分,它不需要实际的 HTTP 帖子。
  • POSTing via cURL 怎么容易出错?无论如何,实际查找源代码的荣誉;)

标签: wordpress csv import automation cron


【解决方案1】:

您需要查看 cron 和/或 WP 自己的 wp_schedule_event

【讨论】:

    【解决方案2】:

    我相信BlogSense Automation Tools 提供了一个具有自动化能力的 CSV 导入模块。只要您生成了新的 csv 文件并且帖子的标题是唯一的,那么自动化应该会流动。

    否则需要对插件进行一些重大修改;您希望它尝试使用 CURL 加载本地静态 csv 文件(以取代从您的 hard-darve 手动加载文件的需要),然后使用内部 wordpress cronjob 系统从那里执行该过程。

    这是我用来每分钟执行一次 wordpress 内部 cronjob 的代码。您可以将第二个间隔更改为更大的值。

    add_filter('cron_schedules', 'add_per_min');
    
    function add_per_min() {
        return array(
        'perminute' => array('interval' => 60, 'display' => 'Every Minute'),
        );
    }
    
    if (!wp_next_scheduled('the_name_of_my_custom_interval')) {
        wp_schedule_event(time(), 'perminute', 'the_name_of_my_custom_interval' );
    }
    
    add_action('the_name_of_my_custom_interval', 'the_function_to_run_here');
    

    【讨论】:

    • 如果您在 10 分钟内没有访问您的网站会怎样?
    猜你喜欢
    • 1970-01-01
    • 2013-04-12
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 2012-06-21
    • 2015-02-09
    • 2019-11-12
    • 1970-01-01
    相关资源
    最近更新 更多