导入帖子时,Wordpress 以编程方式更新自定义字段 ACF

问题描述 投票:0回答:1

我面临着一个奇怪的问题。

我有一个插件,可以将 RSS feed 同步到 wordpress 中的帖子(属于episode类别)。

这个插件不会检索剧集的持续时间,所以我想我会自己做,该插件每月更新 2 集,所以不会有太大压力。

我花了几个小时将以下代码放在我的主题的functions.php中。

每集帖子都有 ACF 自定义字段附加持续时间/表演注释等,因此想法是一旦导入程序获取每月剧集,这将自动获取持续时间并填充相关的 ACF 字段。

这是代码:

function get_stream_from_audio_src($string){

    preg_match_all('#\bhttps?://[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/))#', $string, $match);
    $stream_url = substr($match[0][0], 0, strpos($match[0][0], "mp3")+3);

    return $stream_url;
}

function run_after_saving_episode( $post ) {

    global $post;

    if (empty(get_post_meta($post->ID, 'duration', true))) {
        $clean_url = get_stream_from_audio_src(get_post_meta($post->ID, 'stream_id', true));
        $duration = get_MP3_Duration($clean_url);
        update_post_meta($post->ID, 'duration', $duration);
    }
}

add_action( 'acf/save_post', 'run_after_saving_episode',25,1 );

如果我在管理员中手动保存/更新,一切正常,但剧集导入器似乎不会触发 acf/save_post。

我错过了什么吗?

谢谢大家!

wordpress advanced-custom-fields
1个回答
0
投票

检查 RSS 导入器中是否有一个操作,您可以从中调用自己的函数

run_after_saving_episode

add_action( 'example_rss_importer_do_action', 'run_after_saving_episode' );

您使用哪个 RSS 导入器?然后我可以稍微调整我的代码示例。

© www.soinside.com 2019 - 2024. All rights reserved.