我正在尝试为我在主机上发布的每篇帖子上传照片,因此我使用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
文件没有上传。所有链接和参数都已经过检查并且是正确的。
答案 0 :(得分:0)
您的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 );