场景:我允许从前端创建帖子。该表单还具有四个图像上传字段。我将下面粘贴的代码用于图像附件并设置帖子缩略图。
//insert attachments
if ($_FILES) {
foreach ($_FILES as $file => $array) {
$newupload = insert_attachment($file,$pid);
}
}
//attachment helper function
function insert_attachment($file_handler,$post_id,$setthumb='false') {
if ($_FILES[$file_handler]['error'] !== UPLOAD_ERR_OK){ return __return_false();
}
require_once(ABSPATH . "wp-admin" . '/includes/image.php');
require_once(ABSPATH . "wp-admin" . '/includes/file.php');
require_once(ABSPATH . "wp-admin" . '/includes/media.php');
$attach_id = media_handle_upload( $file_handler, $post_id );
//set post thumbnail
if ($setthumb) update_post_meta($post_id,'_thumbnail_id',$attach_id); //you will need to comment out this line if you use my solution
return $attach_id;//you will need to comment out this line if you use my solution
}
通过此代码设置的后期缩略图/特色图像是最后上传的图像。我尝试在谷歌搜索“从前端 wordpress 设置帖子缩略图”并浏览了很多文章,但没有一篇接近我在这里问的内容。我在 SE 遇到的大多数线程都是关于前端发布的,要么是关于设置特色图片,要么是关于多次上传。我还检查了所有提示的建议问题,而我写这个问题只是为了确保以前是否有人问过它。
如果重要的话,这里是表单中使用的 html,非常标准。
<input type="file" name="image-one" id="image-one"/>
<input type="file" name="image-two" id="image-two"/>
<input type="file" name="image-three" id="image-three"/>
请求:如果我能得到一个解决方案,帮助将任何选择的图像输入字段分配为特色图像,那就太好了,但此刻,至少我需要将第一个图像输入设置为特色图像-图像/后缩略图。请提出解决方案。
底线是我在设置缩略图后没有问题,但问题是关于可以选择任何上传的图像作为缩略图后或至少是第一张图像,而不是当前代码设置的最后一张图像.
进度报告:永远不知道它是否有助于解决这个问题。但是当我 print_($newupload) 时,我得到了 id,例如。54287 ,保存为后缩略图的最后一个图像输入附件。
该线程建议了一种使用帖子中找到的第一张图片设置特色图片的方法,因此我想到了这个想法。但是代码似乎也不起作用。
$attachments = get_children(array(
'post_parent' => $pid,
'post_status' => 'inherit',
'post_type' => 'attachment',
'post_mime_type' => 'image',
'order' => 'ASC',
'orderby' => 'ID'
));
if ($attachments) {
foreach ($attachments as $attachment) {
set_post_thumbnail($pid, $attachment->ID);
break;
}
最后一句话:进度报告中的代码暂时为我完成了工作,也就是说..将第一个图像文件输入设置为特色图像/后缩略图,我什至不确定这是否是最好的方法去做这个。我仍在寻找一种可以灵活选择任何图像输入字段作为特色图像的解决方案。如果您决定使用此功能,请记住注释掉原始代码的倒数第二行和倒数第三行。