Quali sono le differenze tra WPINC e ABSPATH?
È comune per gli sviluppatori di plugin proteggere i loro plugin dall'accesso diretto. Ho visto due modi per farlo:
if ( ! defined( 'WPINC' ) ) die;
e
if ( ! defined( 'ABSPATH' ) ) exit;
Quali sono le differenze tra WPINC e ABSPATH? Quale è il modo "corretto" per farlo?

Sono definiti come segue:
define( 'ABSPATH', dirname(dirname(__FILE__)) . '/' );
define( 'WPINC', 'wp-includes' );
dirname
è una funzione PHP che restituisce il percorso della directory genitore, e wp-includes
è abbastanza autoesplicativo.
Direi che ABSPATH
è migliore perché è una delle prime cose che WordPress carica e inoltre ha un aspetto migliore:) Ma non c'è un vero "modo giusto" perché entrambi funzionano.

if ( ! defined( 'WPINC' ) ) die;
e if ( ! defined( 'ABSPATH' ) ) exit;
aggiungono un ulteriore livello di sicurezza impedendo l'accesso diretto al file del tuo plugin. ABSPATH
è una costante PHP definita da WordPress nel suo core.
Se il file del tuo plugin viene accessato dall'esterno di WordPress, la costante ABSPATH
o WPINC
non sarà definita, quindi il codice del plugin terminerà, prevenendo qualsiasi accesso non autorizzato al tuo codice.
ABSPATH
e WPINC
sono definite nel core di WordPress come:
define( 'ABSPATH', dirname(dirname(__FILE__)) . '/' );
define( 'WPINC', 'wp-includes' );
Entrambe vengono utilizzate per lo stesso scopo.

Quali sono le differenze tra WPINC e ABSPATH?
Puoi verificarlo da solo. Basta guardare wp-load.php
nel mirror di WordPress su GitHub.
Anche una rapida occhiata mostrerà che la risposta attualmente selezionata non è più corretta riguardo a come ABSPATH
è definito. E se confronti diversi tag su GitHub, vedrai che la definizione di ABSPATH
cambia effettivamente nel tempo.
Qual è il modo "giusto" per farlo?
Dato che questi sono utilizzati per la sicurezza, opterei per ABSPATH
. La motivazione è che ABSPATH
non solo è definito per primo nel bootstrapper di WP, ma WPINC
è definito sotto una condizione nello stesso file e, di conseguenza, è più probabile che possa subire regressioni future.
Inoltre, anche se non esplicitamente chiesto, hai fornito esempi che utilizzano sia die
che exit
. Secondo devdocs.io
, che attinge alla documentazione ufficiale delle API, die
è equivalente a exit
, quindi potresti scegliere uno dei due e non farebbe differenza.
Sia die
che exit
accettano argomenti, quindi potresti considerarli per stampare informazioni utili, come una versione crittografata o informazioni di contatto, in caso di terminazione anomala, o passare un codice di uscita come 0
o -1
per ulteriori elaborazioni.
Vale anche la pena notare che esiste wp_die
. Da non confondere con le funzioni built-in di PHP, ma le completa per l'uso nell'output di HTML oltre al testo semplice ed è utilizzato ampiamente nel core di WordPress attualmente. Scopri di più su wp_die
su WordPress.org.

Può essere utile notare che non c'è alcuna differenza tra die
e exit
.
Vedi: https://stackoverflow.com/questions/1795025/what-are-the-differences-in-die-and-exit-in-php

Nella sua forma attuale, la tua risposta non è chiara. Per favore [modificala] per aggiungere dettagli aggiuntivi che aiutino gli altri a capire come questo risponda alla domanda posta. Puoi trovare maggiori informazioni su come scrivere buone risposte nel centro assistenza.

Questo non fornisce una risposta alla domanda. Una volta che avrai sufficiente reputazione potrai commentare qualsiasi post; invece, fornisci risposte che non richiedano chiarimenti da parte di chi ha posto la domanda. - Da Revisione
