我面临着一个奇怪的问题。
我有一个插件,可以将 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。
我错过了什么吗?
谢谢大家!
检查 RSS 导入器中是否有一个操作,您可以从中调用自己的函数
run_after_saving_episode
。
add_action( 'example_rss_importer_do_action', 'run_after_saving_episode' );
您使用哪个 RSS 导入器?然后我可以稍微调整我的代码示例。