gpt4 book ai didi

php - WordPress 帖子元上传框中的 $_FILES 始终为空

转载 作者:行者123 更新时间:2023-12-03 09:07:06 27 4
gpt4 key购买 nike

我感觉自己很傻。我正在构建我的第一个 WordPress 插件。第一个目标是向帖子添加一个自定义元框,以允许音频上传。我创建了元框,当我使用文本输入时,代码工作正常。当我尝试将输入转换为文件上传时,我遇到了问题。

  1. 文件从未上传(我使用的是 wp_upload_bits())
  2. $_FILES 似乎总是空的。在下面的示例中,当我调用诸如 $_FILES[ 'audio_box' ] 之类的内容时,我总是得到无效或不可用的 key 。

这是我正在使用的代码的简化版本。我有随机数和真实版本中的所有设置!

<?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 }

?>

我需要在这里做些什么特殊的事情才能将文件上传到保存时的媒体库吗?

谢谢大家!长期倾听者,第一次来电:)

最佳答案

您缺少一些用于填充 $_FILES 的代码。

add_action( 'post_edit_form_tag', 'update_edit_form' );
function update_edit_form() {
echo ' enctype="multipart/form-data"';
}

在本地为我工作。

https://tommcfarlin.com/upload-files-in-wordpress/

https://code.tutsplus.com/articles/attaching-files-to-your-posts-using-wordpress-custom-meta-boxes-part-1--wp-22291

关于php - WordPress 帖子元上传框中的 $_FILES 始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46409457/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com