向不存在的帖子添加图像

时间:2014-07-20 作者:nevos

我正在建立一个前端发布机制。除了图像上传器外,一切正常。我正在使用Wordpress所见即所得编辑器<?php wp_editor ?>. 当我点击Add media(添加媒体)按钮(这是编辑器的一部分)时,图像实际上正在上载到上一篇文章,因为当前的文章还不存在。

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

尼沃

2 个回复
SO网友:Rarst

我不确定这是否直接回答了您的问题,但作为技术琐事,WordPress实际上会在您打开编辑器后立即创建一个帖子,并使用auto-draft 地位在用户实际保存附件和自定义字段之前,这正是用来为附件和自定义字段等内容设置目标的。

因此,当用户第一次“保存”帖子时,它实际上并没有被创建,但现有的自动草稿会被更改为草稿或已发布的帖子。

您可能需要复制此逻辑或重建依赖于它的相关功能。

SO网友:OmAk

给你:

// Returns the attachment ID uploaded
$attach_id = omakUploadImage( $file, $post_id ); 

// Set an image as Featured Image to post with $post_id
// This is the cream you needed, Nivos
set_post_thumbnail( $post_id, $attach_id );

// omakUploadImage is a custom function which takes an input type="file" value

function omakUploadImage( $file, $post_id=\'\' ) {

if( $post_id == \'\' ) {
    global $post;
    $post_id = $post->ID;
}

// Get Upload Directory
$uploaddir = wp_upload_dir();

/*  echo \'<br/><br/>\';print_r($_FILES); echo \'<br/><br/>\';print_r($file); */

// Create File Name 
$uploadfile = $uploaddir[\'path\'] . \'/\' . basename( $file[\'name\'] );
// Create Upload Path, Not Required though
$uploadpath = $uploaddir[\'path\'] . \'/\';

/*
echo \'<br/><br/>\';echo \'upload file: \';print_r($uploadfile);    
echo \'<br/><br/>\';echo \'upload path: \';print_r($uploadpath);
*/

// Move Temp Named File to Actual File Name in UploadDir
$moved = move_uploaded_file( $file[\'tmp_name\'] , $uploadfile );

// Get The Image Name
$filename = basename( $uploadfile );

$wp_filetype = wp_check_filetype(basename($filename), null );

$attachment = array(
    \'post_mime_type\' => $wp_filetype[\'type\'],
    \'post_title\' => preg_replace(\'/\\.[^.]+$/\', \'\', $filename),
    \'post_content\' => \'\',
    \'post_status\' => \'inherit\',
    //\'menu_order\' => $_i + 1000
);

$attach_id = wp_insert_attachment( $attachment, $uploadfile, $post_id );
//echo \'<script>alert("AttachId: \'.print_r($attach_id).\'")</script>\';

return $attach_id;
}
希望有帮助!有一些测试代码被注释掉了。

这里是我使用它实现前端发布的地方。http://www.omaksolutions.com/clients/neetinpuri/localmag/submit-your-business

结束

相关推荐

正在删除POSTS表中的过滤器下拉列表(在本例中为Yoast SEO)

我不需要一个帖子类型的Yoast SEO元框,所以我用remove\\u meta\\u box()删除了它。通过使用manage\\u edit-custom\\u post\\u columns取消设置列,删除了post表中不需要的列,但仍保留下拉列表。有没有办法去掉它?当然,使用jQuery并不是那么难,但也许WP中内置了过滤器或其他东西?