【发布时间】:2020-07-12 02:13:15
【问题描述】:
我正在开发一个自定义主题,允许您在一个页面上上传多个图像。由于我有多个文件输入,我在functions.php 文件中使用此函数(在每个文件输入的循环内):
register_setting('hero', 'slider_slide_' . $i . '_image',
function($option) use ($i) {
if (!empty($_FILES['slider_slide_' . $i . '_image']['tmp_name'])) {
$_FILES['slider_slide_' . $i . '_image']['name'] = 'slide_' . $i . '.png';
$urls = wp_handle_upload($_FILES['slider_slide_' . $i . '_image'], array('test_form' => FALSE));
$temp = $urls['url'];
return $temp;
}
return $option;
});
内联函数是我尝试过的唯一一个同时适用于多个文件的方法。无论哪种方式,我现在都面临着我的选项被覆盖的问题。上传后,该选项会在我的数据库中设置,并带有指向图像的正确链接。但是,如果我稍后更改页面上的其他设置,由于没有上传任何内容,该选项会被空白字符串覆盖,尽管我在更新选项之前检查了文件是否为空。
理想情况下,我希望允许用户更改任何内容并检查文件上传以检查是否选择了任何内容,如果是,则上传并更新选项。
唯一的问题是,Wordpress 似乎正在处理选项的更新...
也没有抛出任何错误,所以我现在完全被难住了。
【问题讨论】:
标签: php wordpress wordpress-theming custom-wordpress-pages