我有一个功能,可以下载MP3文件的一部分,以分析文件大小和持续时间。我的函数存在的问题是,它在任何地方都有效。当我试图删除编辑上的帖子时。php面板,它给了我一个超时,但当我返回编辑时,它确实会删除帖子。php。有没有一种方法可以让函数在创建帖子、不更新帖子或编辑帖子时执行代码。php?
function analyze_mp3( $post_id, $post ){
if ( ! wp_is_post_revision( $post_id ) ) {
$filename = tempnam(\'/tmp\',\'getid3\');
if (file_put_contents($filename, file_get_contents(get_post_meta( $post_id, \'podcast_url\', true ), false, null, 0, 152608654))) {
if (require_once( trailingslashit( get_template_directory() ). \'id3/getid3.php\' )) {
$getID3 = new getID3;
$ThisFileInfo = $getID3->analyze($filename);
}
unlink($filename);
update_post_meta( $post_id, \'length\', $ThisFileInfo[filesize] );
update_post_meta( $post_id, \'time\', $ThisFileInfo[playtime_string] );
}
}};
add_action( \'save_post\', \'analyze_mp3\', 10, 2 );
最合适的回答,由SO网友:Aniruddha Gawade 整理而成
save_post
接受另一个参数$update
.
$update : Whether this is an existing post being updated or not.
所以在你的代码中
add_action( \'save_post\', \'analyze_mp3\', 10, 3 );
function analyze_mp3( $post_id, $post, $update ){
if($update)
return;
//your code
}
请检查语法/文档。尚未尝试或测试此功能。