Es común que los desarrolladores de complementos protejan sus complementos del acceso directo. Vi dos formas de hacer eso:
if ( ! defined( 'WPINC' ) ) die;
y
if ( ! defined( 'ABSPATH' ) ) exit;
¿Cuáles son las diferencias entre WPINC y ABSPATH? ¿Cuál es la forma 'correcta' de hacerlo?
plugins
php
plugin-development
Daniel
fuente
fuente

if ( ! defined( 'ABSPATH' ) ) exit;... pero, tal vez, considere que el alcance de este fragmento es garantizar que se cargue wordpress 'WPINC' es mejor porque es más wordpressfull mirando con 'WP'.if ( ! defined( 'WPINC' ) ) die;yif ( ! defined( 'ABSPATH' ) ) exit;agregue una capa adicional de seguridad al evitar cualquier acceso directo a su archivo de complemento.ABSPATHes una constante PHP definida por WordPress en su núcleo.Si se accede a su archivo de complemento desde fuera de WordPress, la constante
ABSPATHoWPINCno se definirá, por lo que sale del código del complemento, evitando cualquier acceso no autorizado a su código.ABSPATHyWPINCse definen en el núcleo de WordPress como:Ambos se usan para el mismo propósito.
fuente
Puedes comprobarlo tú mismo. Solo mira en
wp-load.phpel espejo de WordPress en GitHub.Incluso un vistazo rápido mostrará que la respuesta seleccionada actualmente ya no es correcta en cuanto a cómo
ABSPATHse define. Y si compara diferentes etiquetas en GitHub, verá que laABSPATHdefinición realmente cambia con el tiempo.Dado que estos se utilizan para la seguridad, iría por
ABSPATH. La razón es queABSPATHno solo se define primero en el programa de arranque de WP,WPINCse define bajo un condicional en el mismo archivo y, como resultado, es más probable que experimente una regresión futura.Además, aunque no se le preguntó explícitamente, proporcionó ejemplos utilizando ambos
dieyexit. Segúndevdocs.io, que se basa en la documentación oficial de la API,diees equivalente aexit, por lo que puede elegir cualquiera de los dos y no hará la diferencia.Ambos
dieyexitaceptan argumentos, por lo que podría considerar usarlos para generar información útil, como una etiqueta de versión encriptada o información de contacto, al finalizar, o pasar un código de salida como0o-1para un procesamiento posterior.También vale la pena señalar que
wp_dieeso también es una cosa. No debe confundirse con las funciones integradas de PHP, pero las complementa para su uso en la salida de HTML, además de texto sin formato, y actualmente se usa de forma liberal en todo el núcleo de WordPress. Obtenga más informaciónwp_diesobre WordPress.org.fuente