从外部网页中抓取第一张图片并添加到新帖子中

时间:2015-05-16 作者:5AMWE5T

我正在寻找一种方法,从外部页面中刮取第一张/最好的/最大的图片,并插入该图片的副本作为我Wordpress网站上新帖子的特色图片。

我希望这样做的方式是,我网站的用户将外部网页的URL输入到表单中,然后它将该页面刮取第一个/最佳/最大的图像,并将其设置为新帖子的特色图像,然后在提交表单时发布。我已将前端帖子提交设置为Gravity Forms 这允许我的网站的用户创建新的帖子,但我对它的后端web抓取部分感到困惑。

有没有可能在Wordpress中实现这一点?可能使用HTTP API? 我不是程序员,所以HTTP API对我来说有点吓人。我希望这里有比我更熟悉Wordpress的编程知识的人能帮助我。

1 个回复
SO网友:Wali Hassan

可以参考here

但是你正在谈论Gravity表单插件中的大量定制,就像你说的,你自己不是程序员,所以你最好在他们的论坛中打开一张支持票,他们可能会提供帮助。

如果你决定自己做,也可以看看这段代码

    $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_status\' => \'inherit\'
);
$attach_id = wp_insert_attachment( $attachment, $file, $post_id );
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 );

set_post_thumbnail( $post_id, $attach_id );
$image\\u url是您将从用户输入/上载中获得的内容。

结束