Регистрация    Вход    Форум    Поиск    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.8/5, основан на 25 голосах.


Нравится



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


   

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

AJAX – это просто

При клике на ссылку считываем идентификатор родителя (тега li) и заставляем расствориться блок.

Выполнение JavaScript-кода

Иногда приложение проектируется таким образом, что сервер в качестве ответа возвращает JavaScript-код, который должен быть выполнен в браузере.

WordPress – CSS в постах

Так как через wp-admin дописать CSS в шапку поста невозможно, приходится извращатся.

Почему не работает функция strtolower()

Немного посмеялся и поправил на более корректный вариант в данном случае, заодно решил и сюда отписать, вдруг читатель встретился с таким, но, к сожалению, не будет знать как это решить.



  •  Публикации


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

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

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

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

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

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

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

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

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

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

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

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