Прошу поделиться очень хорошими русскоязычными ресурсами, если такие есть, чтобы обучиться созданию плагинов для WP. Уже 5 месяцев работаю с WP и ничего толкого не смог найти. Последний плагин я попробовал в ООП написать, и естественно написал все по своему, и такое чувство что больше, кроме меня не разберется в нем:D. Хотелось бы стать мастером в ВП, но английский у меня в процессе обучения, полностью англоязычные ресурсы не тяну пока.
PS: Просьба если вы не можете что то конкретное посоветовать то не пишите пожалуйста советы типа - "Учи документацию" или "Учи английский" и т.д. таких советчиков я не звал сюда)
Wordpress не предоставляет никаких ограничений для создания плагинов в плане их структуры. Хотите - хоть в один файл запихните все в процедурном стиле (как многие и делают), а хотите - юзайте какой-нибудь Composer.
Хорошо, а как же кодекс WP, нужно же писать так чтобы написание было приемлемым для его спецификации написания. И как например я научусь правильно создавать плагин юзеров, наследуя объект от WP_User? Как же база? Что с ней лучше делать? Создавать новую таблицу или редактировать уже существующую? Вот такие вот, может и мелочи, но я же говорю, я хочу стать мастером WP, так как после работы с ним, я считаю что это наилучший движок для повседневной работы, не считая конечно магазинов.
thehighhomie: в кодексе нет никаких предписаний касательно структуры плагина и стиля кода. Необходимые вещи описаны в соотв. разделе (уверен, его вы уже успели прочесть, раз создавали плагины). Работа с базой осуществляется через глобальный объект $wpdb, а вопрос о создании новой таблицы сугубо контекстный. Необходимо четко понимать требования к плагину, а также специфику нативных возможностей WP.
Например, чтобы создать простенький плагин магазина с товарами, не обязательно выделять под хранение товаров новую таблицу, т.к. все можно решить через Custom Post Types.
А вот создавая какой-нибудь плагин для форм обратной связи создать свою таблицу уже придется, т.к. WP не предоставляет нативных инструментов для работы с подобными структурами. Через CPT делать подобное неудобно и неправильно, т.к. форма != пост. И так далее.
В целом, алгоритм тут такой: нужна фича > смотрим, что дает по теме движок, можно ли обойтись без велосипедов > нельзя - делаем собственный.
Многие разработчики используют собственный устоявшийся паттерн для создания плагинов, у меня это MVC в случае больших плагинов или Singleton (в случае маленьких плагинов это считается best practice).
Стайлгайд можно почерпнуть, заглянув в любой файл ядра. Хотя как по мне, он весьма специфичен и на любителя.
Алексей Николаев: ого) все так четко описали) мне приходится создавать сайты в которых нужны личные кабинеты, профиля и т.п. Так как не было еще задания чтобы нужны были комментарии и другие фишки то я писал плагин заново и меня это мягко говоря достало) Хочу расширить пользователей через наследование WP_User, чтобы уже были готовые функции, хотябы начальные, для пользователей, вот я типа таких примеров и ищу ресурсы, но убеждаюсь уже что на русском нету ничего такого) Видел только сайт wppanda, ресурс хороший, все четко, но не достаточно информации там пока на мой взляд. Вы можете посоветовать конкретно в моем случае как быть с таблицами в БД, при наследовании и класса WP_User, создавать новые все или же редактировать существующие, и если можно то ресурсы где больше информации подчерпнуть, чтобы лучше все понять? Кодекс мало того что не весь на русском, так еще и инфа только базовая, не для таких вещей.
thehighhomie: для расширения личного кабинета отдельная таблица также не нужна, если нужно только добавить несколько полей + сделать страницу на сайте вне админки. В WP вся информация о пользователе получается \ обновляется с помощью функций get_the_user_meta() \ add_user_meta(). Их и используйте, плюс фильтры, позволяющие перехватывать обновление информации о пользователе personal_options_update). Напрямую таблицы редактировать явно не стоит, т.к. может слететь при обновлении ядра.
Для решения подобных задач, проще погуглить что-то вроде "adding custom user profile fields", и найти пару уроков (на английском), или ответ на stackovervlow. Иногда приходится искать по коду нужные экшены. Я всю информацию таким образом и получаю.