A cosa serve la cartella wp-includes di WordPress?
A cosa serve la cartella wp-includes di WordPress? Ovvero, qual è lo scopo architetturale fondamentale, per esempio perché non è tutto contenuto nelle cartelle dei temi o nella cartella admin?
Uno sviluppatore di plugin può fare affidamento sui suoi contenuti (ad esempio jQuery) e per quanto tempo?
Vorrei anche sapere chi decide cosa inserire al suo interno e come viene mantenuta quando WordPress cambia, e se tutto questo è documentato da qualche parte come documento ufficiale?

wp-includes
contiene tutto il necessario per far funzionare WordPress sul frontend (e anche qualcosa in più). È il territorio del Core di WordPress e, come dice il proverbio, non modificare mai il core in nessuna circostanza.
Mentre wp-content
può definire plugin e temi, l'API stessa e la maggior parte del core di WordPress si trovano in quella cartella. Quasi tutto WordPress dipende da questi elementi. Tutte le funzioni standard e le loro dipendenze si trovano in questa cartella.
Questo la rende una risorsa preziosa per la ricerca e la consultazione.
wp-admin
può definire elementi aggiuntivi ma non è così vitale per il funzionamento del frontend
./wp-admin - Codice di amministrazione
./wp-content - Codice e contenuti definiti dall'utente
./wp-includes - File comuni
Per quanto riguarda l'affidabilità dei file in quella cartella, non dovresti fare affidamento su di essi. Non dovresti mai aver bisogno di includere un file o un percorso da wp-includes e se tenti di farlo o ne hai bisogno, allora hai commesso un grave errore e devi fermarti e tornare indietro.
Anche se i file in quella cartella possono cambiare senza preavviso, questo non dovrebbe avere conseguenze, poiché l'API contenuta è mantenuta compatibile con le versioni precedenti per un periodo di tempo significativo.
Al di fuori degli aggiornamenti di WordPress, wp-includes
non dovrebbe mai essere modificato e idealmente dovrebbe essere in sola lettura.
Se hai bisogno di aggiungere una dipendenza al tuo codice, fai affidamento sulle versioni in wp-includes piuttosto che aggiungere le tue. Ad esempio, non includere una versione personalizzata di jQuery, usa quella inclusa in WordPress (e non de-registrarla per poi re-registrarla).
Le modifiche a wp-includes possono causare rischi per la sicurezza, degradazione delle prestazioni, rottura di plugin/temi, ecc.
Le modifiche ai pacchetti e alle librerie incluse vengono annunciate prima delle release. Le vecchie dipendenze non più necessarie (come il vecchio selettore di colore) vengono mantenute, ma contrassegnate come deprecate per evitare la rottura del codice.

La directory wp-includes
contiene i pacchetti inclusi dal core. Il team del core mantiene i pacchetti inclusi in wp-includes
. Temi e plugin possono fare affidamento sul fatto che questi pacchetti siano disponibili per qualsiasi versione di WordPress.
Questa è una ragione estremamente importante per cui è fondamentale accodare solo versioni core-bundled degli script, utilizzando la registrazione degli script definita dal core, come ad esempio: wp_enqueue_script( 'jquery' )
, in modo che il tuo Tema/Plugin utilizzerà sempre la versione inclusa nel core, indipendentemente dalla versione di WordPress in esecuzione.

WordPress, come applicazione, è composto da diverse parti mobili. La cartella /wp-includes
contiene la funzionalità comune per l'API di WordPress (che utilizzi nei temi/plugin) e per l'amministrazione di WordPress.
Quindi, in sintesi:
./wp-admin - Codice di amministrazione
./wp-content - Codice e contenuti definiti dall'utente
./wp-includes - File comuni
La directory /wp-includes
è dove vengono memorizzate utili librerie di terze parti (ad esempio SimplePie per RSS e IncutioRPC per XML-RPC). È anche qui che viene definita gran parte dell'API di WordPress (come WP_Http, WP_Filesystem).
Uno sviluppatore di plugin può fare affidamento sui suoi contenuti? E per quanto tempo?
Sì. Questi file sono ciò che definisce l'API di WordPress in primo luogo. Il team principale fa grandi sforzi per mantenere la compatibilità con le versioni precedenti, quindi se verranno introdotte modifiche in WordPress che potrebbero interrompere ciò che stai utilizzando, ne verrai informato con largo anticipo.
Vorrei anche sapere chi decide cosa viene inserito lì e come viene mantenuto man mano che WordPress cambia, e tutto questo è documentato da qualche parte come una policy?
Le decisioni per l'API di WordPress sono definite dal team di sviluppo. Puoi solitamente seguire i cambiamenti su http://make.wordpress.org/core. Le librerie vengono sempre mantenute poiché modificare queste librerie è ciò che cambia WordPress.

wp-includes
è la directory che contiene la maggior parte della funzionalità principale di WordPress. È qui che risiede tutto il codice principale di WordPress.
WordPress fa un ottimo lavoro nel mantenere la compatibilità con le versioni precedenti. Puoi utilizzare le funzioni incluse in questa cartella per creare plugin (è così che ti colleghi al sistema).
WordPress Trac è l'area principale che decide come WordPress evolve, quindi se hai opinioni/aggiunte, partecipa lì :)

Il manuale di Make WordPress Core ha una pagina utile intitolata Il Codebase di WordPress, che fornisce una buona panoramica su Come è Organizzato il Codice in WordPress, includendo:
La directory wp-includes contiene le librerie principali del core e di terze parti per WordPress. Molti di questi file vengono caricati durante il bootstrap dell'applicazione.
I file in wp-includes seguono un set (quasi) standard di prefissi e suffissi:
- class-*.php – Classi PHP. Alcune di queste sono librerie esterne.
- ms-*.php – Codice specifico per la funzionalità multisite di WordPress.
- default-*.php – Codice che implementa o definisce funzionalità predefinite, come costanti, widget e filtri.
- *deprecated.php – Funzioni che sono deprecate.
- *-template.php – Funzioni template per le relative API.
I file in wp-admin/includes seguono convenzioni di denominazione simili.
e
La directory wp-admin/includes contiene le librerie principali del core e di terze parti disponibili e utilizzate nell'area di amministrazione. Alcune di queste vengono caricate durante il bootstrap dell'admin; vedi wp-admin/includes/admin.php per la lista principale dei file inclusi.
e altro ancora... dateci un'occhiata gente del 2022! :-)
