我想让登录用户(Wordpress)能够从前端提交帖子(以及其他数据)。
我的表单工作得很好,我添加了自定义帖子元数据,这些元数据稍后会显示在自定义帖子页面上。
我补充道enctype="multipart/form-data"
形成标签。
将此代码添加到函数中。php:
function insert_attachment($file_handler,$post_id,$setthumb=\'false\') {
// check to make sure its a successful upload
if ($_FILES[$file_handler][\'error\'] !== UPLOAD_ERR_OK) __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 );
if ($setthumb) update_post_meta($post_id,\'_thumbnail_id\',$attach_id);
return $attach_id;
}
并将其发送到自定义贴子页面(其中前端表单为):
if ($_FILES) {
foreach ($_FILES as $file => $array) {
$newupload = insert_attachment($file,$pid);
}
};
在这段php代码之后,我有以下代码来创建帖子:
$post_information = array(
\'post_title\' => wp_strip_all_tags( $_POST[\'title\']),
\'post_content\' => $_POST[\'content\'],
\'post_category\' => array($_POST[\'category\']),
\'post_type\' => \'post\',
\'post_status\' => \'pending\'
);
$post_information = wp_insert_post($post_information);
add_post_meta($post_information, \'custom1\', $_POST[\'custom1\']);
add_post_meta($post_information, \'custom2\', $_POST[\'custom2\']);
add_post_meta($post_information, \'custom3\', $_POST[\'custom3\']);
现在,将帖子数据毫无问题地添加到新帖子中,并上传图像。我用以下内容上载图像:
<input type="file" tabindex="3" name="custom-upload1" id="custom-upload2" />
<input type="file" tabindex="3" name="custom-upload2" id="custom-upload2" />
<input type="file" tabindex="3" name="custom-upload3" id="custom-upload3" />
现在,我需要找到一种方法来保存和显示创建的自定义帖子上的图像。我在考虑这两种选择:
将上载的图像URL保存在自定义字段中将图像直接保存到帖子对于我的情况,第一种选择会更好,但我不知道怎么做。
有没有办法这样省钱:
add_post_meta($post_information, \'imageURL\', $_POST[\'imageURL\']);
但我不知道如何将image URL变量传递给“imageURL”。
有没有其他选择?