【问题标题】:Add a cron-function to wordpress向 wordpress 添加一个 cron 函数
【发布时间】:2018-01-07 01:36:57
【问题描述】:

我想在 wordpress 中添加一个自己的 cron。

它应该使用正常的 wp-cron 运行并执行以下代码:

UPDATE wp_posts SET post_content = replace(post_content, 'http://www.oldurl', 'http://www.newurl');

如何将自己的 cron 函数添加到 wp-cron?

感谢您的帮助!

【问题讨论】:

  • 您要循环浏览网站上的所有帖子并替换该网址吗?是一次吗?您能否添加更多此搜索/替换的目的,以便我们可以获取上下文,如果它是一次,或者正在进行,如果它是一次一个帖子,或者您要循环浏览所有帖子,比如每天..等等。
  • 我需要每天运行一次或两次替换。

标签: php mysql wordpress cron


【解决方案1】:

Wordpress wp-cron 是一个伪 cron。每次有人进入页面时,它都会运行预定的功能。

为什么要更新post_content?如果它与 wordpress 网站迁移有关,请考虑 Moving WordPress Codex

如果您确实需要更改帖子中的网址,请尝试在每次保存新帖子时进行:

add_filter( 'wp_insert_post_data' , 'filter_post_data' , '99', 2 );

function filter_post_data( $data , $postarr ) {
    //post content is in $data array.
    //Look for URL in $data['post_content'], replace it and return modified $data.

    return $data;
}

【讨论】:

  • 谢谢!这段代码很棒!但我主要需要它来处理旧帖子。不适用于新帖子。所以一个 cron 会很好,它每天编辑所有旧帖子一两次。问题是,在我的网站上,用户可以编辑旧帖子。我需要更改编辑内容。
  • 好的,所以我建议您检查您的主机是否启用了 cron。如果是这样,请使用 wp-config 中的数据创建连接到 DB 的简单 php 文件,并仅运行您编写的那个 SQL 代码,并使用您的 cron 运行 php 文件。 WP-cron 将在为用户呈现页面之前运行操作,因此如果您有大量帖子,延迟会很明显。顺便问一下,URL 变化这么频繁,需要每天运行吗?
  • 谢谢!用你的方法解决了。
猜你喜欢
  • 2017-02-11
  • 2016-05-16
  • 1970-01-01
  • 1970-01-01
  • 2016-02-19
  • 1970-01-01
  • 2015-07-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多