Tutta la documentazione che ho incontrato parla della sostituzione delle funzioni collegabili tramite il tuo plugin.
E se invece stai facendo lo sviluppo del tema?
My funziona.php richiede un altro file che sovrascrive la get_user_by()
funzione, definita in pluggable.php
.
Se ometto la if( function_exists() )
chiamata viene visualizzato l'errore "Impossibile ripetere ...".
Se includo la if( function exists() )
chiamata, non ricevo alcun errore, ma ovviamente la mia funzione viene quindi ignorata, poiché esiste la versione collegabile.
Sulla base del fantastico post di Dominic sull'ordine di avvio di WordPress , è chiaro che pluggable.php
viene caricato prima del tema functions.php
e così via, quindi ciò spiega l'errore.
Quindi la domanda è: come puoi trarre vantaggio da quella bella architettura collegabile all'interno di un tema, senza ricorrere alla scrittura di plugin che devono quindi essere raggruppati o installati con il tema?
Ulteriori note : Quindi sembra che l'argomento sia che i temi non dovrebbero cercare di fare ciò che fanno i plugin. Ma quell'argomento ha più di quattro anni (secondo il numero di trac di 4 cifre). Mi piacerebbe molto sapere da alcuni esperti che questa filosofia si applica ancora, vista la complessa topologia del panorama di sviluppo dei temi di oggi. Mi piacerebbe credere che ci siamo evoluti da allora.
Contesto : sto sviluppando una soluzione CMS unica per un cliente, con molti metadati personalizzati, personalizzazione del back-end di amministrazione, il processo di accesso / autenticazione, i lavori. E, naturalmente, c'è la componente di design -. Che è dove la parte tema viene fornito è infatti, questi sono semplicemente non componenti riutilizzabili - non potranno mai applicarsi a un altro cliente, non potranno mai essere messi sotto licenza GPL e open source, e sono la maggior parte certamente non essere distribuito / installato su altre distribuzioni WordPress. Nel migliore dei casi ci sono alcune buone pratiche che farò leva su progetti futuri, ma che sarà strettamente un lavoro di riferimento / copia-incolla.
Per me questo non sembra un caso d'uso per i plugin. Il tema è installato, forse un tema figlio di Twenty Eleven, forse uno standalone, le sue funzioni.php chiama in un carico di inclusioni, ognuna delle quali gestisce un aspetto diverso del CMS in questione. Quindi i file del modello del tema utilizzano "tag modello" personalizzati definiti nelle inclusioni. Non voglio avere file di temi con dipendenze da alcuni plugin o altri attivati, ecc. Non ha senso costruire complessità nel sistema. Certo, posso metterlo nella cartella dei plug-in indispensabili, ma sembra ancora un hack - in questo momento, tutto ciò che ha a che fare con le personalizzazioni fatte per questo progetto è contenuto wp-content/themes/my-theme/
. Non voglio nemmeno prendere in considerazione la ricerca di cose anche in alcune cartelle di plugin.
Non fraintendetemi. Adoro i plugin e li uso e li scrivo. E io uso i plugin insieme a questo tipo di sviluppo di temi altamente personalizzati quando il plugin è di terze parti e rappresenta le migliori pratiche ben oltre ciò che potrei eventualmente implementare in un lasso di tempo ragionevole. Ma quando ho bisogno di modificare le funzionalità di base per uno scenario unico, mi rivolgo a hook di azione, hook di filtro e mi piacerebbe poter fare affidamento su funzioni collegabili per l'utente e anche dal lato dell'autenticazione.