我创建了一个用于处理事件图像的自定义帖子类型(图像),我还添加了一个自定义图像上传器元字段,一切都按照我想要的方式工作,除了它破坏了喷气背包。我从 Jetpack 的经验中知道,插件可能会产生意外的输出,导致 jetpack 出现“-32700”错误,但我不知道是代码的哪一部分导致了它。图片上传器的代码是:
<?php
function add_custom_meta_boxes() {
// Define the custom attachment for posts
add_meta_box(
'wp_image_attachment',
'Custom Attachment',
'wp_image_attachment',
'images',
'side'
);
} // end add_custom_meta_boxes
add_action('add_meta_boxes', 'add_custom_meta_boxes');
function wp_image_attachment() {
wp_nonce_field(plugin_basename(__FILE__), 'wp_image_attachment_nonce');
$html = '<p class="description">';
$html .= 'Upload your image here.';
$html .= '</p>';
$html .= '<input type="file" id="wp_image_attachment" name="wp_image_attachment" value="" size="25">';
echo $html;
} // end wp_image_attachment
function save_custom_meta_data($id) {
/* --- security verification --- */
if(!wp_verify_nonce($_POST['wp_image_attachment_nonce'], plugin_basename(__FILE__))) {
return $id;
} // end if
if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return $id;
} // end if
if('page' == $_POST['post_type']) {
if(!current_user_can('edit_page', $id)) {
return $id;
} // end if
} else {
if(!current_user_can('edit_page', $id)) {
return $id;
} // end if
} // end if
/* - end security verification - */
// Make sure the file array isn't empty
if(!empty($_FILES['wp_image_attachment']['name'])) {
// Setup the array of supported file types. In this case, it's just PDF.
$supported_types = array('image/gif', 'image/jpeg', 'image/jpg', 'image/png');
// Get the file type of the upload
$arr_file_type = wp_check_filetype(basename($_FILES['wp_image_attachment']['name']));
$uploaded_type = $arr_file_type['type'];
// Check if the type is supported. If not, throw an error.
if(in_array($uploaded_type, $supported_types)) {
// Use the WordPress API to upload the file
$upload = wp_upload_bits($_FILES['wp_image_attachment']['name'], null, file_get_contents($_FILES['wp_image_attachment']['tmp_name']));
if(isset($upload['error']) && $upload['error'] != 0) {
wp_die('There was an error uploading your file. The error is: ' . $upload['error']);
} else {
add_post_meta($id, 'wp_image_attachment', $upload);
update_post_meta($id, 'wp_image_attachment', $upload);
} // end if/else
} else {
wp_die("The file type that you've uploaded is not an image.");
} // end if/else
} // end if
} // end save_custom_meta_data
add_action('save_post', 'save_custom_meta_data');
function update_edit_form() {
echo ' enctype="multipart/form-data"';
} // end update_edit_form
add_action('post_edit_form_tag', 'update_edit_form');
?>
我知道要放在这里的代码很多,但是上次我链接到 pastebin [;)] 时我被喊了,但是任何帮助都将不胜感激,因为该站点即将完成,但我真的很想利用 Jetpack 的宣传功能,所以我不想牺牲它,但我需要这个位才能工作。
提前谢谢了!:)