函数运行错误在WordPress add_action


function run error in wordpress add_action

我正在尝试为主机中发布的每篇帖子上传一张照片,所以我使用 WordPress 操作,但它不起作用。

当我手动使用该功能时,它可以工作,但在操作中它不起作用。

 function post_photo_update($post_id){
        $imdb_id=vp_metabox('vp_meta_sample_8.imdb');
        $imdb=get_imdb_info('http://www.omdbapi.com/?i='.$imdb_id);
        $html = file_get_html('http://tinymoviez14.com/'.$imdb_id);
        foreach($html->find('img[id=movie_picture]') as $element){
            $b=$element-> src ;
        }
        $url= 'http://tinymoviez14.com/'.$b;
        $f = fopen( 'image.jpg' , 'w+');
        $handle = fopen($url , "rb");
        while (!feof($handle))
        {
            $contents = fread($handle, 50000);
            fwrite($f , $contents);
        }
        fclose($handle);
        fclose($f);
        }
    add_action( 'wp_insert_post', 'post_photo_update',10, 2 );

换句话说,当我发布帖子时image.jpg文件没有上传。所有链接和参数都经过检查,并且是正确的。

您的add_action调用指定回调函数采用 2 个参数,但是,函数声明只有 1 个参数。看看 https://developer.wordpress.org/reference/functions/add_action/。默认情况下,wp_insert_post 操作使用 3 个参数 ( do_action( 'wp_insert_post', $post_ID, $post, $update ); ,因此此代码应该有效:

<?php
function post_photo_update( $post_ID, $post, $update ) {
    // ...
}
add_action( 'wp_insert_post', 'post_photo_update', 10, 3 );