函数适用于任何地方,如何在创建新帖子时保持其执行

时间:2017-12-19 作者:Gregory Schultz

我有一个功能,可以下载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 );

1 个回复
最合适的回答,由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
}
请检查语法/文档。尚未尝试或测试此功能。

结束

相关推荐

Calculations in functions.php

我为自己创建了一个发票主题,并试图在自定义列中获取发票总额。我已经尝试调整模板页面中使用的代码,以便在函数中显示这一点。php文件,但它不工作。我的乘法操作数出现了一个操作数错误,我不知道为什么。这是我的代码(如有任何帮助,将不胜感激)。if( $column_name == \'invoice_total\' ) { $hours = 0; // This allows counting of each sub_field //* Set repeater va