Я б почав з цього питання: чи функціональність пов'язана з представленням вмісту, або з генерацією / керуванням вмістом, або з сайтом, або з ідентифікацією користувача?
Якщо функціональність не пов’язана конкретно з представленням вмісту , вона прямо знаходиться в межах плагінної території. Цей список довгий:
- Модифікація основних WP-фільтрів (
wp_head
вміст, такий як канонічні посилання, генератор та інші HTML-мета тощо)
- Сайт Favicon
- Постмістові шорт-коди
- Опублікувати посилання для обміну
- Сценарії колонтитулів Google Analytics (та подібні до них)
- Інструменти / засоби управління SEO
- тощо.
Якщо функціональність пов'язана з презентацією вмісту , то вона є кандидатом на включення до Теми. На цьому етапі я б повернувся до критерію Тема перемикання @ Raf912 : чи втратили б ви функціональність при переключенні тем? Якщо відповідь на це питання - ні , функціональність належить до Теми. Деякі приклади:
- Видалення / переосмислення основного CSS галереї WP
- Фільтрування довжини витягу публікації, тексту "читати далі" тощо.
- Все, що реалізується через
add_theme_support()
(я думаю, це має бути очевидним)
- Спеціальний CSS
Зазвичай ці два питання дадуть досить чітку лінію розмежування; однак, є винятки.
Спеціальні типи публікацій
Наприклад, користувацькі типи публікацій - це трохи унікальний гібрид створення вмісту та презентації, враховуючи спосіб роботи Ієрархії шаблонів для індексованих сторінок архівів одного типу та одних сторінок публікацій . Аспект CPT, що генерує вміст, зазвичай розміщує їх прямо на Території плагінів; однак плагіни не можуть визначати сторінки шаблонів, які по своїй суті вписуються у дизайн / макет / стиль для будь-якої заданої теми (особливо якщо CPT відображає, крім звичайного заголовка / вмісту / мета, або з нею пов'язані власні таксономії).
В довгостроковій перспективі рішення цієї невідповідності IMHO полягає у встановленні стандартної конвенції / консенсусу щодо визначення CPT для заданих типів вмісту (списки нерухомості, календарні події, продукти електронної комерції, записи бібліотек книг / медіа тощо) .). Таким чином, створений користувачем вміст залишатиметься переносним між Темами, які реалізують стандартне / конвенційне визначення даної CPT, тоді як розробники Теми зберігають гнучкість у визначенні дизайну / макета / стилю цього CPT у файлах шаблонів Тема.
Посилання в соціальних мережах
Так само, як правило, я б сказав, що посилання на профілі соціальних медіа, які стають усіма повсюдними в нинішніх Темах, є плагіновою територією, оскільки вони не мають нічого спільного з презентацією вмісту. Найкращим рішенням було б, щоб ці профілі були визначені десь в основі; однак, наразі не існує стандартних / консенсусних засобів визначення цих зв’язків. Чи найкраще вони визначені на рівні налаштування сайту чи на основі кожного користувача? Якщо в шаблоні користувача, який користувач мета відображається в шаблоні? тощо.
Отже, довготерміново, рішення цієї невідповідності полягає в тому, щоб або ядро визначити, де визначені ці посилання, або для того, щоб спільнота розробників Теми виробила власний консенсус. Тим часом, насправді немає нічого, крім того, щоб вони були визначені у межах кожної теми.