我試圖創建一個只有4個圖像的自定義文章類型,但我有一些麻煩。 這是儲蓄,但我做了一些改變,現在我認爲它甚至不這樣做。 (不,它根本沒有上傳/保存。)WordPress定製文章不保存圖像在自定義元框
另一個問題是,即使我存儲的url只接收文件名。 我一直在廣泛搜索(除了一些其他的基本信息,這是我今天所做的所有工作),我發現的大多數答案都是不同的,並且不管用。
我已經查閱了法典中的所有功能,並且理解了它們,並且我無法爲我的生活找出什麼是錯誤的。 如果你願意,請給我發消息我很樂意向你發送wp用戶名和密碼,以便你可以查看管理員。 (這是一個臨時網站的那一刻)
非常感謝,比利
<?php add_action('init', 'create_post_type');
function create_post_type() {
register_post_type('bwd_project',
array(
'labels' => array(
'name' => __('Projects'),
'singular_name' => __('Project'),
'add_new' => 'Add new Project',
'add_new_item' => 'Add New Project',
'edit' => 'Edit',
'edit_item' => 'Edit Project',
'new_item' => 'New Project',
'view' => 'View',
'view_item' => 'View Project',
'search_items' => 'Search Projects',
'not_found' => 'No Projects found',
'not_found_in_trash' => 'No Projects found in Trash',
'parent' => 'Parent Project'
),
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'projects'),
'menu_position' => 20,
'supports' => array('title','thumbnail'),
)
);
}
add_action('admin_init' , 'my_admin');
function my_admin(){
add_meta_box('project_meta_box',
'New Project',
'display_project_meta_box',
'bwd_project',
'normal','high'
);
}
function display_project_meta_box() {
global $post;
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return $post_id;
$project = get_post_custom($post->ID);
$logo = $project["logo"][0];
$img1 = $project["img1"][0];
$img2 = $project["img2"][0];
$img3 = $project["img3"][0];
?>
<table>
<tr>
<?php print_r($project); ?>
</tr>
<tr>
<td><strong>Project logo</strong></td>
</tr>
<tr>
<td><img src="<?php echo $logo; ?>" /></td>
</tr>
<tr>
<td><input type="file" name="logo" value="<?php echo $logo; ?>"/></td>
</tr>
<tr></tr>
<tr>
<td><strong>Image 1</strong></td>
<td><strong>Image 2</strong></td>
<td><strong>Image 3</strong></td>
</tr>
<tr>
<td><img src="<?php echo $img1; ?>" /></td>
<td><img src="<?php echo $img2; ?>" /></td>
<td><img src="<?php echo $img3; ?>" /></td>
</tr>
<tr>
<td><input type="file" name="img2" value="<?php echo $img2; ?>"/></td>
<td><input type="file" name="img1" value="<?php echo $img1; ?>"/></td>
<td><input type="file" name="img3" value="<?php echo $img3; ?>"/></td>
</tr>
</table> <?php
}
add_action('save_post', 'save_project_link');
function save_project_link(){
global $post;
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE){
return $post_id;
}else{
if (!empty($_FILES['logo']['name'])) {
$upload_overrides = array('test_form' => false);
$upload = wp_handle_upload($_FILES['logo'], $upload_overrides);
if (!isset($upload['error'])) {
update_post_meta($post->ID, "logo", $upload['url']);
}
}
}
}
?>
編輯:在我的代碼改了幾個無關緊要的事情。
另外,對於獎金愛情,誰能告訴我一個簡單的方法來保存圖像(4次),還是我必須單獨做這件事?
問題顯然是在save_post一部分,我發現那裏是一個問題是防止'wp_update_metadata()上傳錯誤'。 我用'wp_update_metadata($ post-> ID,'logo',$ upload);'得到錯誤,其中包含「a:1:{s:5:」error「; s:24:」無效的表單提交。「;}」,但我想不出爲什麼會發生這種情況? – Bill