Как программировать для WordPress?

22 окт. 2011 г., 09:03:45
Просмотры: 933
Голосов: 6

В обычном PHP и фреймворках разработка ведётся с помощью IDE, я использую PhpStorm и очень доволен, но недавно решил изучить самый популярный CMS и запутался — как же программировать для него?

1) Нужно ли разворачивать WordPress не только на сервере, но и локально? Редактировать файлы в IDE/редакторе и использовать функцию "импорт/экспорт" WordPress для синхронизации изменений? Как работает команда разработчиков? Что насчёт VCS?

2) Или разработка должна вестись прямо в админ-панели? Если так, то нет подсветки синтаксиса, автодополнения, интеллисенса и других преимуществ, ускоряющих разработку.. а плагины для подсветки, которые я видел, работают очень плохо.

WordPress — путь одиночки? Какой общий подход используют WordPress-разработчики?

php
2
Комментарии

Вы говорите о создании темы WordPress или плагина, или о работе с записями/страницами?

User User
22 окт. 2011 г. 09:06:44

PHP-код, плагины и т.д.

User User
22 окт. 2011 г. 09:13:55
Все ответы на вопрос 4
0

Способ разработки Джуды для WordPress определенно не неправильный — просто отличается от того, как я делаю. Кроме того, две предоставленные им ссылки очень полезны. Пост в блоге кажется стоящим прочтения, а кодекс — это библия каждого разработчика WordPress.

Чтобы предложить вам больше вариантов для изучения, вот мой взгляд на разработку для WordPress:

IDE / среда разработки: Если вам нужно изменить стиль одного элемента, достаточно будет wp-admin ("админки"). Однако для серьезной разработки тем или плагинов это точно не вариант. Поэтому стоит придерживаться выбранной вами IDE. Для полноты картины: как пользователь *nix, я бы использовал Komodo Edit на Linux и Coda на Mac. Впрочем, работаете ли вы с WordPress, другой CMS или пишете код с нуля — не имеет значения при выборе IDE. Используйте то, с чем вам удобно. Одно из самых базовых требований, которые я предъявляю к IDE (и рекомендую обратить на это внимание вам) — это возможность загружать и сохранять файлы на сервер напрямую через FTP. Сохранять файлы локально и загружать их вторым приложением — утомительно. Еще один важный критерий — хорошая подсветка синтаксиса для PHP, CSS, JS и HTML.

Где разрабатывать: После небольшого экспериментирования вы можете прийти к выводу, что вам удобнее разрабатывать локально — мне нет. Я предпочитаю разрабатывать либо прямо на сервере, где потом будет работать сайт, либо на сервере с аналогичной конфигурацией (версии Apache и PHP, в меньшей степени — mySQL, и, наконец, ОС). Отсюда важность IDE с поддержкой FTP. Если вы выберете локальную разработку, убедитесь, что среда хотя бы похожа на ту, где сайт будет развернут. В моем случае я использую субдомены для разработки на своем сервере, которые не доступны публично. Так я знаю, что сайт будет вести себя точно так же, когда я перенесу его в продакшен.

Разработка тем WordPress: Начинать полностью с нуля, то есть с пустой папки темы и создавать каждый необходимый файл самостоятельно, было бы очень трудоемко и для новичка в WordPress почти невозможно. В качестве основы для написания своей первой темы WordPress я настоятельно рекомендую скачать тему Starkers, разработанную легендарным Эллиотом Джейем Стоксом. Starkers почти не содержит стилей и семантической разметки. Однако в ней есть все основные функции и файлы стандартной темы WordPress. Сегодня я использую свой собственный шаблон темы — по сути, Starkers с рядом модификаций, которые я бы вносил в каждую тему. Этот шаблон хорошо мне служит, потому что он адаптирован под мой личный стиль работы (и лишен комментариев), но то, что сделал Эллиот, — это идеальная отправная точка для (начинающего) дизайнера тем.

Что еще делать (если вы пойдете моим путем): Ознакомьтесь с базовой структурой темы WordPress. Я не представляю работу без статических файлов header.php и footer.php, которые обрамляют сайт, а между ними происходит вся магия. Знайте, что лучше поместить в functions.php и зачем он нужен. Знайте, что такое цикл WordPress. Прочтите статьи кодекса о разработке тем и цикле WordPress. Прочтите их снова. Когда поймете хотя бы 75% содержания, начните разбирать Starkers, уловите его структуру. Развивайтесь оттуда. Каждый раз, когда столкнетесь с проблемой, сначала проверьте кодекс (я обычно делаю это опосредованно — гугля ключевые слова с добавлением "wordpress", часто страница из кодекса будет в первых 5 результатах), а затем спрашивайте у других.

Последний ресурс: Два года назад я настоятельно рекомендовал бы посмотреть трехчастное обучающее видео Криса Койера (из css-tricks.com) по тематированию WordPress. Учитывая, что оно с начала 2009 года, в нем используется WP 2.7 (текущая версия — 3.2.1). Я все равно рекомендую его посмотреть — это хорошая и простая для понимания серия скринкастов с множеством советов, которые до сих пор актуальны. Просто смотрите его, помня, что с тех пор некоторые вещи изменились. Первое видео серии можно найти здесь, остальные — через поиск Google, на сайте или изменяя URL соответственно.

22 окт. 2011 г. 22:48:43
0

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

Когда я разрабатываю тему с нуля, я начинаю с HTML/CSS для всех страниц и настраиваю их локально. Затем я устанавливаю WordPress локально с помощью MAMP или XAMPP и разбиваю свою разметку на файлы темы (разделяю на различные файлы шаблонов WordPress). После этого есть несколько вариантов переноса локальной версии на удаленный сервер. Обычно я делаю чистую установку WordPress на сервере, удаляю стандартную базу данных и создаю новую, заменяю удаленную папку wp-content своей локальной (содержащей только что разработанную тему), делаю дамп локальной базы данных и импортирую его в новую базу на сервере. Затем подключаю установку WordPress к базе данных через файл wp-config.

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

Вы можете следовать этому руководству, чтобы узнать о создании файлов темы: http://thethemefoundry.com/blog/html-wordpress

Обязательно изучите Codex: http://codex.wordpress.org/ Он довольно обширный, но сообщество WordPress огромно, а документация качественная.

22 окт. 2011 г. 09:26:37
0

1) Нужно ли разворачивать WordPress не только на сервере, но и локально? Редактировать файлы в IDE/редакторе и использовать функцию "импорт/экспорт" в WordPress для синхронизации изменений? Как команда разработчиков обычно работает над проектом? Как насчёт системы контроля версий?

Самый распространённый способ работы команды разработчиков над WordPress-проектом — использование системы контроля версий, такой как SVN или Git. С помощью IDE, например PhpStorm, выгрузите копию на локальную машину, убедившись, что корневая директория WordPress указана как корневая директория проекта.

Работайте с файлами и тестируйте в локальной среде разработки, затем фиксируйте изменения в главном репозитории на сервере разработки или продакшена.

Также очень полезно работать с включённым режимом отладки и настроить Xdebug в вашей IDE.

В файле wp-config.php:

define( 'WP_DEBUG', true); // Включить режим отладки
define('SCRIPT_DEBUG', true); // Отладка скриптов
define('CONCATENATE_SCRIPTS', false); // Отключить объединение скриптов
define( 'SAVEQUERIES', true); // Сохранять SQL-запросы для анализа

2) Или же нужно разрабатывать прямо в админ-панели? Если так, то отсутствуют подсветка синтаксиса, автодополнение, интеллектуальная подсказка и другие полезные функции, ускоряющие разработку.. А плагины для подсветки, которые я видел, работают очень плохо.

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

WordPress — удел одиночек? Какой общий подход используют WordPress-разработчики?

WordPress очень далёк от того, чтобы быть уделом одиночек. Это крупный open source проект с огромным вовлечением сообщества. Доступно множество ресурсов и более мелких сообществ, в которых можно участвовать.

25 окт. 2011 г. 09:09:08
5
-5

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

Я бы охарактеризовал его как самоучку-предначинателя в PHP, который учился по онлайн-туториалам и решил в одночасье начать кодить для WordPress, рассчитывая, что ответ на форуме всему его научит. Но это не так просто...

  1. Поймите, как работает WordPress, используя его на практике и обращая внимание на детали
  2. Прочтите 1+ книг по PHP/WordPress (Да, это стоит денег, так устроен мир)
  3. Настройте локальную среду разработки (Установите сервер, домены, WordPress и т.д.)
  4. Используйте IDE (NuSphere PhpEd на Windows) для быстрого поиска функций - лучший способ изучить WordPress это изучать его исходный код
  5. Начинайте с малого, изучите как работают плагины/действия/фильтры. Когда вы их освоите - вы овладеете программированием для WP. Затем вам останется только знать конкретные функции и фильтры или уметь их находить при необходимости (IDE обязательно)

Бесплатные знания по программированию - это те знания, которые делают ваш код опасным для вас и всех окружающих. Тот, кто сказал вам, что знания бесплатны, просто устранял конкурента.

25 окт. 2011 г. 02:43:52
Комментарии

Тот, кто спрашивает, стоит ли разрабатывать плагины в JS-редакторе (кодовое название Dashboard), действительно имеет проблемы. Я, как разработчик, нахожу это оскорбительным. Сейчас все стали программистами, думая, что это прогулка в парке.

EarnestoDev EarnestoDev
25 окт. 2011 г. 02:47:28

Меня оскорбляет твоё отношение к непрофессионалам в целом и к этому конкретному случаю в частности. К тому же, это мелочно считать, что нельзя быть самоучкой и что свободно доступных знаний будет недостаточно.

Johannes Pille Johannes Pille
25 окт. 2011 г. 16:40:47

Этого хватит, чтобы он стал опасностью для тех, с кем или на кого будет работать. Обучение онлайн — это как строить без фундамента (а фундамент — это образование, не школа, а что-то структурированное, например, книга). Туториалы учат конкретным решениям, а книги — всему остальному.

EarnestoDev EarnestoDev
25 окт. 2011 г. 20:08:02

Минусовал несколько месяцев назад, теперь объясню почему: по моему мнению, Интернет — это воплощение фантазии (видения?) Хорхе Луиса Борхеса "Вавилонская библиотека". ::: Книги против учебников: думаю, у господина Иоганна Гутенберга тоже были проблемы с тем, что рукописи считались лучше печатных книг...

brasofilo brasofilo
21 янв. 2013 г. 06:53:03

мой -1 превратился бы в +1, если бы ты ограничился пронумерованными пунктами. Вполне возможно стать компетентным и качественным PHP-разработчиком, используя только свободно доступные материалы; но это требует высокого уровня вовлечённости, организованности и трудолюбия.

Zach Lysobey Zach Lysobey
15 мар. 2013 г. 19:09:07