Gostaria de começar com esta pergunta: a funcionalidade está relacionada à apresentação de conteúdo, ou à geração / gerenciamento de conteúdo, ou do site ou da identidade do usuário?
Se a funcionalidade não estiver relacionada especificamente à apresentação do conteúdo , ela estará diretamente no território do plug-in. Esta lista é longa:
- Modificação dos principais filtros WP (
wp_head
conteúdo, como links canônicos, gerador e outras meta HTML, etc.)
- Site Favicon
- Códigos de acesso pós-conteúdo
- Postar links de compartilhamento
- Scripts de rodapé do Google Analytics (e similares)
- Ferramentas / controles de SEO
- etc.
Se a funcionalidade está relacionada à apresentação do conteúdo , então é um candidato para ser incluído no tema. Nesse ponto, eu voltaria ao critério de troca de tema do @ Raf912 : você perderia a funcionalidade ao trocar de tema ? Se a resposta para essa pergunta for não , a funcionalidade pertence ao Tema. Alguns exemplos:
- Removendo / substituindo o CSS principal da Galeria do WP
- Filtragem do tamanho do excerto da postagem, texto "leia mais" etc.
- Qualquer coisa implementada via
add_theme_support()
(suponho que essa deva ser óbvia)
- CSS customizado
Normalmente, essas duas perguntas fornecerão uma linha de diferenciação bastante clara; no entanto, há exceções.
Tipos de postagem personalizados
Os Tipos de postagem personalizados, por exemplo, são um híbrido único de geração e apresentação de conteúdo, dada a maneira como a Hierarquia de modelos funciona para páginas de índice de arquivamento e páginas de postagem únicas . O aspecto de geração de conteúdo dos CPTs normalmente os colocaria diretamente no território dos plug-ins; no entanto, os plug-ins não podem definir páginas de modelo que se encaixem inerentemente no design / layout / estilo de um determinado tema (especialmente se o CPT exibir outro que não seja o título / conteúdo / meta comum, ou tiver taxonomias personalizadas associadas a ele).
A longo prazo, a solução para essa disparidade, IMHO, é ter uma convenção / consenso padrão para a definição de CPTs para determinados tipos de conteúdo (listagens de imóveis, eventos de calendário, produtos de comércio eletrônico, entradas de livros / bibliotecas de mídia etc.) .). Dessa forma, o conteúdo gerado pelo usuário permanecerá portátil entre os Temas que implementam a definição padrão / convencional de um determinado CPT, enquanto os desenvolvedores do Tema mantêm a flexibilidade de definir o design / layout / estilo desse CPT nos arquivos de modelo do Tema.
Links de mídia social
Da mesma forma, eu normalmente diria que os links de perfil de mídia social, que se tornaram quase onipresentes nos Temas atuais, são Territórios de Plugins, porque não têm nada a ver com a apresentação de conteúdo. A melhor solução seria que esses perfis fossem definidos em algum ponto do núcleo; no entanto, atualmente não há meios padrão / consensuais para definir esses links. Eles são melhor definidos no nível de configuração do site ou por usuário? Se por usuário, a meta de qual usuário é exposta no modelo? etc.
Então, novamente, a longo prazo, a solução para essa disparidade é definir o local onde esses links são definidos ou a comunidade de desenvolvedores do Theme desenvolver seu próprio consenso. Enquanto isso, não há realmente nada a não ser mantê-los definidos em cada Tema.