WPINC ve ABSPATH arasındaki farklar nelerdir?


34

Eklenti geliştiricileri için eklentilerini doğrudan erişime karşı korumak yaygındır. Bunu yapmanın iki yolunu gördüm:

if ( ! defined( 'WPINC' ) ) die;

ve

if ( ! defined( 'ABSPATH' ) ) exit;

WPINC ve ABSPATH arasındaki farklar nelerdir? Hangisi yapmanın 'doğru' yolu?

Yanıtlar:


19

Bunlar şöyle tanımlanır:

define( 'ABSPATH', dirname(dirname(__FILE__)) . '/' );
define( 'WPINC', 'wp-includes' );

dirnameana dizinin yolunu döndüren bir PHP işlevidir ve wp-includesoldukça açıklayıcıdır.

Bence daha ABSPATHiyi çünkü WP'nin yüklediği ilk şeylerden biri ve daha da iyi görünüyor :) Ama gerçek bir "doğru yol" yok çünkü ikisi de çalışıyor.


4
Orada hiçbir gerçek doğru yolu ve her zaman kullanmak if ( ! defined( 'ABSPATH' ) ) exit;belki bu pasajı kapsamı daha tutar olduğundan wordpress daha iyi 'WPINC' dir yüklendiğinden emin olduğunu düşünün ... ama wordpressfull 'WP' ile dik dik bakma.
gmazzap

4

if ( ! defined( 'WPINC' ) ) die;ve if ( ! defined( 'ABSPATH' ) ) exit;eklenti dosyanıza doğrudan erişimi engelleyerek ekstra bir güvenlik katmanı ekleyin. ABSPATHWordPress tarafından özünde tanımlanmış bir PHP sabitidir.

Eklenti dosyanıza WordPress dışından erişilirse, sabit ABSPATHveya WPINCtanımlanmayacaktır, bu nedenle eklenti kodundan çıkarak kodunuza yetkisiz erişimi engeller.

ABSPATHve WPINCWordPress çekirdek olarak tanımlanmıştır:

define( 'ABSPATH', dirname(dirname(__FILE__)) . '/' );
define( 'WPINC', 'wp-includes' );

Her ikisi de aynı amaç için kullanılır.


1

WPINC ve ABSPATH arasındaki farklar nelerdir?

Kendin kontrol edebilirsin. Sadece bakmakwp-load.php GitHub'dan WordPress aynaya.

Hatta hızlı bir bakış Seçilen cevap artık doğru olarak nasıl olduğunu gösterecektir ABSPATHtanımlanır. GitHub'daki farklı etiketleri karşılaştırırsanız ABSPATHtanımın gerçekte zaman içinde değiştiğini göreceksiniz .

Hangisi yapmanın 'doğru' yolu?

Bunlar güvenlik için kullanılırsa giderdim ABSPATH. Gerekçe ABSPATHsadece WP önyükleyicisinde ilk WPINColarak tanımlanmamış, aynı dosyadaki bir koşul altında tanımlanmış ve sonuç olarak gelecekteki bir gerileme yaşanması daha muhtemeldir.

Açıkça sorulan olmasa da, ayrıca, ikisini de kullanarak örnek sağladı dieve exit. Göre devdocs.ioresmi API belgeleri üzerinde çizer hangi, dieeşdeğerdir exitya ikisinin seçebilir ve bir farklılık yaratmayacaktır, böylece.

İkisini de dieve exitargümanları kabul eder, böylece şifreli bir sürüm etiketi veya iletişim bilgisi gibi bazı yararlı bilgileri, iptal ettikten sonra iptal etmek 0veya -1daha sonraki işlemler için bir çıkış kodu iletmek için kullanmayı düşünebilirsiniz .

Ayrıca dikkat edilmesi gereken wp_diede bu bir şey. PHP yerleşikleriyle karıştırılmamalıdır, ancak düz metne ek olarak HTML çıktısında kullanım için övgüde bulunur ve şu anda WordPress çekirdeği boyunca liberal olarak kullanılır. WordPress.org hakkında daha fazla bilgiwp_die edinin .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.