Risposte:
Sono definiti come segue:
define( 'ABSPATH', dirname(dirname(__FILE__)) . '/' );
define( 'WPINC', 'wp-includes' );
dirname
è una funzione PHP che restituisce il percorso della directory principale ed wp-includes
è piuttosto autoesplicativa.
Direi che ABSPATH
è meglio perché è una delle prime cose che WP carica e ha anche un aspetto migliore :) Ma non esiste un vero "modo giusto" perché funzionano entrambi.
if ( ! defined( 'WPINC' ) ) die;
e if ( ! defined( 'ABSPATH' ) ) exit;
aggiungi un ulteriore livello di sicurezza impedendo qualsiasi accesso diretto al tuo file plugin. ABSPATH
è una costante PHP definita da WordPress nel suo nucleo.
Se si accede al file del plug-in dall'esterno di WordPress, la costante ABSPATH
o WPINC
non verrà definita, quindi esce dal codice del plug-in, impedendo qualsiasi accesso non autorizzato al codice.
ABSPATH
e WPINC
sono definiti nel core di WordPress come:
define( 'ABSPATH', dirname(dirname(__FILE__)) . '/' );
define( 'WPINC', 'wp-includes' );
Entrambi sono usati per lo stesso scopo.
Quali sono le differenze tra WPINC e ABSPATH?
Puoi controllare te stesso. Basta osservarewp-load.php
sullo specchio WordPress su GitHub.
Anche una rapida occhiata mostrerà che la risposta attualmente selezionata non è più corretta su come ABSPATH
viene definita. E se confronti diversi tag su GitHub vedrai che la ABSPATH
definizione cambia nel tempo.
Qual è il modo "giusto" per farlo?
Dato che questi sono usati per la sicurezza, vorrei andare ABSPATH
. Essendo la logica che ABSPATH
non solo viene definita per prima nel bootstrapper WP, WPINC
viene definita in base a una condizione nello stesso file e, di conseguenza, è più probabile che si verifichi una regressione futura.
Inoltre, sebbene non esplicitamente richiesto, hai fornito esempi usando sia die
e exit
. Secondo devdocs.io
, che si basa sulla documentazione ufficiale dell'API, die
equivale a exit
, quindi puoi scegliere uno dei due e non farà differenza.
Entrambi die
e exit
accettano argomenti, quindi potresti considerare di usarli per produrre alcune informazioni utili, come un tag di versione crittografato o le informazioni di contatto, al momento della sospensione o passare un codice di uscita come 0
o -1
per un'ulteriore elaborazione.
Vale anche la pena notare che anche questa wp_die
è una cosa. Da non confondere con gli built-in di PHP, ma li complimenta per l'uso nell'output di HTML oltre al testo normale e attualmente viene utilizzato liberamente in tutto il core di WordPress. Ulteriori informazioniwp_die
su WordPress.org.
if ( ! defined( 'ABSPATH' ) ) exit;
... ma, forse, considera che lo scopo di questo frammento è garantire che il wordpress caricato "WPINC" sia migliore perché è più wordpressful che fissa con "WP".