Вообразите таким образом! Тема определяет ОСНОВНУЮ СТРУКТУРУ для всего сайта! Тема - это что-то вроде структуры сообщения, страницы или пользовательского типа сообщения, пользовательской страницы, ..! Итак, вы знаете, что тема действительно HTML-код! В конце оправдания Wordpress, он возвращает HTML-код в браузер, и отображение браузера для вас! Этот HTML построен на основе файла темы (index.php, header.php, footer.php, single.php)
Плагины используют hook & filter для изменения темы ДО того, как мы выведем в браузер!
Пример: если вы хотите добавить социальные кнопки в конец сообщения! Вы можете изменить single.php и добавить код, чтобы разместить социальную кнопку прямо под the_content ()!
Но вы можете создать плагин, чтобы использовать фильтр WordPress и ловушку для изменения HTML поста, чтобы добавить вам социальные кнопки!
Вы можете использовать ловушку, чтобы добавить javascript, сделать некоторый логический код, затем визуализировать HTML на основе этого результата, а затем добавить или заменить что-либо с помощью ловушки и фильтра Wordpress!
Но что произойдет, если вы поместите код плагина в файл темы? Предположим, вы поместили некоторые функции для рендеринга контента в functions.php темы! Затем вызовите эти функции вручную где-нибудь в вашей теме! Или, что еще лучше, вы можете использовать ловушку и фильтр для автоматической смены контента без ручного вызова темы!
Так что, пока WordPress может каким-то образом включать ваш код и запускать его! Пока ваш код запускает его, он может сделать для вас все что угодно, используя hook & filter! Некоторые простые плагины могут быть легко помещены в файл темы! Но некоторые большие плагины слишком раздуты, чтобы помещать их в файл темы!
Затем, позже, вы решите удалить эту функцию, перейдете в файл темы и удалите код? Звучит глупо, правда? Итак, у нас есть плагин, это способ автоматического изменения запущенного процесса Wordpress для изменения содержимого, для изменения базы данных, ...
Более того, некоторые хуки запускаются до вызова темы, поэтому вы не можете поместить тему в файл темы!
Выводы: если ваш код включен в WordPress, WordPress запускает его и возвращает результат! Вы можете поместить этот код в файлы темы, WordPress будет называть его для вас! Но если вы упакуете его как плагин, вы можете легко установить / отключить / удалить его, не меняя никаких файлов тем! Кроме того, вы также сохраняете свою тему простой / чистой! Поэтому, если вам нужно что-то изменить, по возможности, добавьте это как плагин! Не помещайте это в файлы темы!