Wordpress / Jetpack:我的代码中有哪些部分导致Jetpack崩溃?

时间:2013-01-23 13:18:22

标签: php wordpress custom-post-type

我已经创建了一个用于处理事件图像的自定义帖子类型(图像),我还添加了一个自定义图像上传器元字段,一切都按照我想要的方式工作,除了它打破了jetpack。我从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的Publicize功能,所以我不想牺牲它,但我需要这一点才能工作。

非常感谢提前! :)

1 个答案:

答案 0 :(得分:0)

Booooo!菜鸟错误!意外的输出似乎是由于我的插件的那一部分被添加到原始自定义帖子类型部分引起的,当然以

结尾
?> 

以上部分以

开头
<?php 

哪个wordpress似乎不喜欢。

问题解决了。现在......

* 注意:现在可能会删除,或留待将来参考:) *