Vorrei iniziare con questa domanda: la funzionalità è correlata alla presentazione dei contenuti, o alla generazione / gestione dei contenuti, o del sito o dell'identità dell'utente?
Se la funzionalità non è correlata in modo specifico alla presentazione del contenuto , è direttamente all'interno del Territorio dei Plugin. Questo elenco è lungo:
- Modifica dei principali filtri WP (
wp_head
contenuto, come collegamenti canonici, generatore e altri meta HTML, ecc
- Sito Favicon
- Codici brevi post-contenuto
- Link per la condivisione di post
- Script piè di pagina di Google Analytics (e simili)
- Strumenti / controlli SEO
- eccetera.
Se la funzionalità è correlata alla presentazione del contenuto , allora è un candidato per essere incluso nel tema. A questo punto, vorrei tornare al criterio di cambio tema @ Raf912 : ti mancherebbe la funzionalità quando cambi tema ? Se la risposta a questa domanda è no , allora la funzionalità appartiene al tema. Qualche esempio:
- Rimozione / sostituzione del CSS della Galleria principale di WP
- Filtraggio della lunghezza dell'estratto del messaggio, testo "leggi altro", ecc.
- Qualsiasi cosa implementata tramite
add_theme_support()
(suppongo che questo dovrebbe essere ovvio)
- CSS personalizzato
Normalmente, queste due domande forniranno una linea di differenziazione abbastanza chiara; tuttavia, ci sono eccezioni.
Tipi di post personalizzati
I tipi di post personalizzati, ad esempio, sono un po 'un ibrido univoco di generazione e presentazione del contenuto, dato il modo in cui la gerarchia dei modelli funziona per le pagine di indice di archivio a tipo di singolo post e le pagine di singoli post . L'aspetto generazionale dei contenuti dei CPT li collocherebbe normalmente nel Territorio dei Plugin; tuttavia, i plug-in non possono definire pagine modello che si adattano intrinsecamente al design / layout / stile per un determinato tema (specialmente se il CPT viene visualizzato al di fuori del solito titolo / contenuto / meta o ha tassonomie personalizzate associate).
A lungo termine, la soluzione a questa disparità, IMHO, è quella di avere una convenzione / consenso standard per la definizione di CPT per determinati tipi di contenuto (elenchi immobiliari, eventi di calendario, prodotti di e-commerce, voci di librerie / media, ecc. .). In questo modo, il contenuto generato dall'utente rimarrebbe portatile tra i Temi che implementano la definizione standard / convenzione di un determinato CPT, mentre gli sviluppatori di temi mantengono la flessibilità di definire il design / layout / stile di quel CPT nei file del modello del tema.
Link ai social media
Allo stesso modo, normalmente direi che i collegamenti al profilo dei social media, divenuti quasi onnipresenti nei temi attuali, sono Plugin Territory, perché non hanno nulla a che fare con la presentazione dei contenuti. La soluzione migliore sarebbe quella di definire questi profili da qualche parte nel core; tuttavia, al momento non esiste alcun mezzo standard / consenso per definire questi collegamenti. Sono meglio definiti a livello di impostazione del sito o per utente? Se per utente, quale meta dell'utente viene esposta nel modello? eccetera.
Di nuovo, a lungo termine, la soluzione a questa disparità è che entrambi i core definiscano dove sono definiti questi collegamenti, oppure che la comunità degli sviluppatori di temi sviluppi il proprio consenso. Nel frattempo, non c'è davvero altro che mantenerli definiti all'interno di ciascun tema.