Php $\ WordPress post meta上载框中的文件始终为空
我觉得自己很傻。我正在构建我的第一个WordPress插件。第一个目标是在帖子中添加一个自定义元框,以允许音频上传。我创建了元框,当我使用文本输入时,代码运行良好。但是,当我尝试将输入转换为文件上载时,我遇到了一个问题 该文件从未上传我正在使用wp\u上传\u位 $\u文件似乎总是空的。在下面的示例中,当我调用$_FILES['audio_box']之类的东西时,总是会得到一个无效或不可用的密钥。 下面是我正在使用的代码的简化版本。我有nonces和所有的真实版本的设置Php $\ WordPress post meta上载框中的文件始终为空,php,wordpress,plugins,Php,Wordpress,Plugins,我觉得自己很傻。我正在构建我的第一个WordPress插件。第一个目标是在帖子中添加一个自定义元框,以允许音频上传。我创建了元框,当我使用文本输入时,代码运行良好。但是,当我尝试将输入转换为文件上载时,我遇到了一个问题 该文件从未上传我正在使用wp\u上传\u位 $\u文件似乎总是空的。在下面的示例中,当我调用$_FILES['audio_box']之类的东西时,总是会得到一个无效或不可用的密钥。 下面是我正在使用的代码的简化版本。我有nonces和所有的真实版本的设置 <?php ad
<?php
add_action( 'load-post.php', 'file_upload_setup' );
add_action( 'load-post-new.php', 'file_upload_setup' );
function file_upload_setup() {
add_action( 'add_meta_boxes', 'file_upload_box' );
add_action( 'save_post', 'upload_save_post_class_meta' );
}
function file_upload_box() {
add_meta_box(
'audio_box', // Unique ID
esc_html__( 'Title' ),
'audio_box', // Callback function
'post', // Admin page (or post type)
'side', // Context
'default' // Priority
);
}
function upload_save_post_class_meta( $post_id ) {
if ( !empty( $_FILES[ 'audio_box' ] ) ) {
$upload = wp_upload_bits( $_FILES[ 'audio_box' ][ 'name' ],
null,
file_get_contents( $_FILES[ 'audio_box' ][ 'tmp_name' ] )
);
}
}
function file_upload_box( $post ) { ?>
<p>
<label for="file_upload_box"><?php _e( "Upload an audio file to accompany your post." ); ?></label>
<br />
<input
class="widefat"
type="file"
name="audio_box"
id="audio_box"
value="<?php
echo esc_attr(
get_post_meta( $post->ID, 'audio_box', true )
);
?>"
size="30"
/>
</p>
<?php }
?>
我需要在这里做些什么才能在保存时将文件上载到媒体库
谢谢大家!长时间侦听器,第一次调用:您缺少一些代码行,无法填充$\u文件
add_action( 'post_edit_form_tag', 'update_edit_form' );
function update_edit_form() {
echo ' enctype="multipart/form-data"';
}
在当地为我工作