Как программировать для WordPress?
В обычном PHP и фреймворках разработка ведётся с помощью IDE, я использую PhpStorm и очень доволен, но недавно решил изучить самый популярный CMS и запутался — как же программировать для него?
1) Нужно ли разворачивать WordPress не только на сервере, но и локально? Редактировать файлы в IDE/редакторе и использовать функцию "импорт/экспорт" WordPress для синхронизации изменений? Как работает команда разработчиков? Что насчёт VCS?
2) Или разработка должна вестись прямо в админ-панели? Если так, то нет подсветки синтаксиса, автодополнения, интеллисенса и других преимуществ, ускоряющих разработку.. а плагины для подсветки, которые я видел, работают очень плохо.
WordPress — путь одиночки? Какой общий подход используют WordPress-разработчики?

Способ разработки Джуды для 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 соответственно.

Я предполагаю, что можно попробовать разрабатывать прямо через админ-панель, но думаю, что это будет слишком сложно. Также, если предположить, что сайт не должен быть доступен публично во время разработки, вам все равно придется переносить его в новый каталог после завершения работы.
Когда я разрабатываю тему с нуля, я начинаю с HTML/CSS для всех страниц и настраиваю их локально. Затем я устанавливаю WordPress локально с помощью MAMP или XAMPP и разбиваю свою разметку на файлы темы (разделяю на различные файлы шаблонов WordPress). После этого есть несколько вариантов переноса локальной версии на удаленный сервер. Обычно я делаю чистую установку WordPress на сервере, удаляю стандартную базу данных и создаю новую, заменяю удаленную папку wp-content своей локальной (содержащей только что разработанную тему), делаю дамп локальной базы данных и импортирую его в новую базу на сервере. Затем подключаю установку WordPress к базе данных через файл wp-config.
После этого можно продолжать использовать локальную копию сайта для исправления ошибок, дальнейшей разработки и т.д., загружая отдельные файлы для внесения изменений.
Вы можете следовать этому руководству, чтобы узнать о создании файлов темы: http://thethemefoundry.com/blog/html-wordpress
Обязательно изучите Codex: http://codex.wordpress.org/ Он довольно обширный, но сообщество WordPress огромно, а документация качественная.

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 проект с огромным вовлечением сообщества. Доступно множество ресурсов и более мелких сообществ, в которых можно участвовать.

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

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

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

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

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

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