WP_INSERT_ATTACH()复制附件帖子

时间:2020-06-22 作者:J.BizMai

我做了一个函数,在WP中添加一个图像,并将其附加到右侧的帖子上。其特殊性在于输入的是一个url以获取图片。我的问题是什么时候wp_insert_attachment() 在运行时,我在介质中得到了一个副本,而第二个没有连接。

My function

function save_media_from_url( $image_url, $post_content = "", $post_id = null ){
   $upload_dir = wp_upload_dir();

   $image_data = file_get_contents( $image_url );

   $filename = basename( $image_url );

   if ( wp_mkdir_p( $upload_dir[\'path\'] ) ) {
       $file = $upload_dir[\'path\'] . \'/\' . $filename;
   }
   else {
       $file = $upload_dir[\'basedir\'] . \'/\' . $filename;
   }

   file_put_contents( $file, $image_data );

   $wp_filetype = wp_check_filetype( $filename, null );

   $attachment = array(
       \'post_mime_type\' => $wp_filetype[\'type\'],
       \'post_title\' => sanitize_file_name( $filename ),
       \'post_content\' => $post_content,
       \'post_status\' => \'inherit\'
   );

   $attach_id = wp_insert_attachment( $attachment, $file, $post_id );
   var_dump( $attach_id );
   wp_die();
   require_once( ABSPATH . \'wp-admin/includes/image.php\' );
   $attach_data = wp_generate_attachment_metadata( $attach_id, $file ) 
   wp_update_attachment_metadata( $attach_id, $attach_data );
   return $attach_id;
}

OUTPUT FOR DEBUGGING

int(188880) <-- attachment id for the first saved ( linked to the right post )
图像保存两次。数据库中的第一条记录链接到右侧的帖子,这是返回id,但第二条记录已保存,没有任何帖子链接。

有人知道怎么解决这个问题吗?

1 个回复
SO网友:J.BizMai

原因是复制媒体的WPML设置:/

相关推荐

Responsive header images

我刚刚建立了一个WordPress网站,但我的其他WordPress网站都有同样的问题:标题图像没有响应。不管屏幕有多小,它都有2000像素宽。我尝试了各种修复,从添加自定义CSS到安装特殊插件,但都没有成功。我最终通过选择不显示标题图像,然后打开文件标题来修复它。并手动在标题上方插入指向图像的链接。它工作得很好,但有两个注意事项。网站标题(在h1标签中)现在位于标题图像下方,而不是上方。此外,此修复程序仅适用于主页。我还没有弄清楚我要为其他页面做什么,除非我选择只在主页上使用标题图像。所以在我继续之前,