Я хочу добавить настраиваемое поле на вкладке «Общие настройки» в wordpress. Это текущие поля, которые WordPress имеет по умолчанию.
- Название сайта
- Строка тега
- URL-адрес адреса Wordpress ... и т. д.
Я хочу добавить настраиваемое поле, например, я хочу иметь поле для загрузки изображения.
Для этого мне пришлось отредактировать options-general.php
, options.php
, general-template.php
, мне пришлось вставить запись в таблицу wp-options
в моя база данных
Теперь, когда я проверил его с помощью простого input type as text
, он работал хорошо. Но когда я устанавливаю input type as file
для загрузки моего логотипа, это не работает, это мой код ниже. options-general.php
<tr valign="top">
<th scope="row"><label for="logo"><?php _e('Logo') ?></label></th>
<td><input name="file" type="file"/></td>
</tr>
Как видите, я поместил поле изображения прямо под полем описания моего блога, и действие этой формы приводит меня к options.php
. это мой option.php
if ( is_multisite() && !is_super_admin() && 'update' != $action )
wp_die(__('Cheatin’ uh?'));
/* image upload function goes here */
if($_POST['submit']){
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
if (file_exists("images/logo/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],"images/logo/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
}
/* image upload function ends here */
Выше я добавил простой скрипт загрузки изображения, но он почему-то не работает, и файл не загружается в каталог.
Работает ли основной код PHP в среде WP Или я что-то упускаю, пожалуйста, подскажите.
}option.php
в нескольких местах, и это}images/logo/" . $_FILES["file"]["name"]))
тоже выглядит странно. Подсветка синтаксиса SO показывает код в виде строк и наоборот - вам где-то не хватает"
. - person Hobo   schedule 14.10.2013echo
в каждой ветке вашего кода, вы должны увидеть некоторый вывод, если код работает. Что, кажется, подразумевает, что он не работает.$_POST['submit']
точно установлено? Вы загрузили нужный файл в нужное место? А в логах PHP ничего нет? Core PHP работает в среде WP, чтобы ответить на эту часть вашего вопроса. Является ли$_FILES
массивом? Может быть, вам стоит перебрать его? - person Hobo   schedule 14.10.2013