Регистрация    Вход    Форум    Поиск    FAQ

  •  Новости
  • Beeline + Twitter = чирикай через SMS!

    Beeline + Twitter = чирикай через SMS! На первой картинке обозначены команды, при помощи которых через SMS Вы сможете кого-либо зафолловить или же отписаться, ретвитнуть чей-либо пост или же написать личное сообщение.

    Open Graph Protocol. От создателей Facebook

    Open Graph Protocol. От создателей Facebook Разбираясь с Facebook API, случайно наткнулся на другую интересную разработку от этих людей.

    Глобальное ускорение Wordpress

    Глобальное ускорение Wordpress Не считая очевидных решений типа отключения некоторых плагинов и перехода на тему попроще, я вижу 2 пути для оптимизации: кэширование и сжатие траффика.




  •  Часы


  •  Поиск

Optimaze » Программирование » Создание нестандартных настроек WP-темы




Создание нестандартных настроек WP-темы

  1. Сначала php-код:


Собственно, еще одна зарисовка на тему создания меню темы WordPress. Статья ориентирована на начинающих разработчиков (HTML/PHP гуру врят-ли найдут что новое). Объясню, в частности, как организовать загрузку файла юзера, с последующим использованием его в теме.

 

Для удобства, буду рассматривать вариант, когда приведенная ниже опция – единственная. Алгоритм:

  • 1. Загружаем выбранный файл
  • 2. Переносим его из временной директории в постоянное место
  • 3. Зная путь до файла, используем его в теме

Сначала php-код:

if(isset($_FILES['fileupload']['name'])&&$_REQUEST['action']=='update'){

    $file_path = TEMPLATEPATH.'/uploads/';

    $file_path = $file_path.basename($_FILES['fileupload']['name']);

    $file_css_path = get_bloginfo('template_url');

    $file_css_path = $file_css_path.'/uploads/'.basename($_FILES['fileupload']['name']);

    $file_path = str_replace('\\','/',$file_path);

Если проставленно имя файла, и в поле ‘action’ значение ‘update’ (это будет скрытое поле, для подтверждения, что юзер ввел новые настройки), то начинаем. В глобальной переменной TEMPLATEPATH хранится движок хранит путь до темы. Нам нужен как абсолютный путь, так и URL (в моем случае, для доступа к файлу-картинке через CSS). URL темы достается функцией get_bloginfo(‘template_url’). Ну и в конце, заменяем все символы “\” на символы “/” в абсолютном пути файла.

Далее, переместим файл, и выведем в опцию его URL:

  • $is_a_file = move_uploaded_file($_FILES['fileupload']['tmp_name'],$file_path);
  •  
  •     if (!get_option('uploaded_pic)) {add_option('uploaded_pic');}
  •     if ($is_a_file) {update_option('uploaded_pic',$file_css_path);}
  •     }

При создании меню настроек меня преследовала ошибка, когда опция обнулялась при каждом обновлении настроек, если только пользователь не загрузил новую картинку. Проверка на проставленный $_FILES['fileupload']['name'] ничего не давала, потому что ключ не пустой в любом случае. Чтобы определить, была ли загрузка, можно, к примеру, проверить размер файла ($_FILES['fileupload']['size']>0) или сделать как я – проверить результат перемещения файла, который будет FALSE при ошибке.

Ну и наконец HTML-интерфейс:

  • <?php wp_nonce_field(); ?>
  • <form method="post" action="" enctype="multipart/form-data">
  • Upload an image: <input type="file" name="fileupload" /><br />
  • <p><input name="update" type="submit" value="<?php _e('Save changes'); ?>" style="padding:3px;"  /></p>
  • <input type="hidden" name="action" value="update"  />
  • </form>

Не забываейте параметр ectype у формы. Здесь, думаю, все очевидно.

Удачного кодинга!



Рейтинг: 4.7/5, основан на 25 голосах.


Нравится



Вернутся назад


   

Вам будет интересно:

Расширения DOM в Prototype

Большинство расширений DOM содержатся в объекте Element. Methods и дополнительно копируются в объект Element для удобства использования.

Автоматизация обработки космических снимков в ArcMap

Выражаю автору благодарность за проделанный мануал, он действительно помог многим.

Динамическое обновление страницы с помощью Ajax. Updater

Разработчики часто создают запросы к серверу для получения фрагментов HTML и обновления содержимого страницы.

Hibernate 3. 1. 3 out

Эта версия, в основном, содержит исправления ранее найденных ошибок, самой неприятной из которых, по моему мнению, является отсутствие отложенной инициализации many-to-one ассоциации в ветке 3.1.



  •  Публикации


8 методов раскрутки своего форума с нуля

8 методов раскрутки своего форума с нуля Итак, у вас имеется свой собственный форум, но его никто не посещает? Мы готовы помочь вам справиться с этой нелегкой проблемой.

Как привлекать посетителей на проект

Как привлекать посетителей на проект Данная статья в основном рассчитана на тех, кто самостоятельно занимается продвижением своего проекта.

Про MySQL, серверы и PayPal

Про MySQL, серверы и PayPal Проклял все настройки кодировок, проклял DirectAdmin и еле-еле нашел то место где располагается и задается общий пароль для ...

Реклама в Твиттере. Как подать свой продукт

Реклама в Твиттере. Как подать свой продукт Твиттер уже давно стал из нового web 2. 0 сервиса рекламной площадкой с огромным количеством потенциальных пользователей ...

Пока блог на локалхосте

Пока блог на локалхосте Самое время кратко описать, чем нам придется заниматься. Прежде всего нужно понять, что блог ты будешь делать для получения ...

Авторитет блоггера притягивает

Авторитет блоггера притягивает Долго не знал с чего начать данную статью. Статья что-то типа мыслей вслух и философии.