我编写了一个自定义脚本,在WordPress中插入一篇帖子,并将3幅图像上传到WP uploads目录。
要写帖子,我使用WP函数wp_insert_post( $wp_post_array, true );
.在不同阶段的脚本中,我也使用wp_get_attachment_image_src($image_id, $size)[0];
, wp_get_attachment_metadata($image_id);
和wp_get_attachment_image( $image_id, \'large\', false, $image_attr );
但是为了上传图片并创建它们的元数据,我在下面编写了这个自定义函数。。。
我一定是把事情搞砸了,因为我在运行这段代码时遇到了500个连接超时错误(即使只有3个图像的大小都小于1Mb)。
有人能发现我做错了什么吗?谢谢你的眼光和经验。
function insert_WP_Images_Data( $post_id, $image_url ) {
global $writer_WP_id;
$upload_dir = wp_upload_dir();
if ( isset($image_url) && isset($post_id) ) {
$filename = basename($image_url);
if(wp_mkdir_p($upload_dir[\'path\']))
$file = $upload_dir[\'path\'] . \'/\' . $filename;
else
$file = $upload_dir[\'basedir\'] . \'/\' . $filename;
$image_data = file_get_contents( $image_url );
file_put_contents($file, $image_data);
$wp_filetype = wp_check_filetype($filename, null);
$attachment = array(
\'post_author\' => $writer_WP_id,
\'post_content\' => \'\',
\'post_title\' => $_SESSION[\'artist\'],
\'post_status\' => \'inherit\',
\'post_name\' => pathinfo($image_url)[\'filename\'],
\'post_mime_type\' => $wp_filetype[\'type\'],
\'post_parent\' => $post_id,
\'guid\' => $upload_dir[\'url\'].\'/\'.$filename
);
// \'post_title\' => sanitize_file_name($filename),
$image_id = wp_insert_attachment( $attachment, $file, $post_id );
require_once( ABSPATH.\'wp-admin/includes/image.php\' );
$attach_data = wp_generate_attachment_metadata( $image_id, $file );
$res1 = wp_update_attachment_metadata( $image_id, $attach_data );
$res2 = set_post_thumbnail( $post_id, $image_id );
return $image_id;
} else {
echo \'<span class="error">No post is selected or image is selected</span>\';
}
}
我已经尝试在cPanel(200600)和via中增加服务器执行时间。htaceess(300)但没有任何效果。。。