WordPress'te Eklentinin Etkin Olup Olmadığı Nasıl Kontrol Edilir [ 3 YOL ]

Yayınlanan: 2020-08-08

WordPress'te bir eklentinin etkin olup olmadığını kontrol edin Bir WordPress geliştiricisi olarak, bir eklenti geliştirirken kodunuzdaki en yaygın kontrollerden biri, eklenti aktivasyonunun durumudur. Bir eklentinin aktif olup olmadığını kontrol etmeniz için birkaç neden vardır. Birkaçından bahsetmek gerekirse, bağımlı bir eklentinin aktif olup olmadığını veya aynı şeyi yapan benzer bir eklentinin olup olmadığını kontrol edebilirsiniz.

Her iki durumda da, hedeflenen eklentinin etkin olup olmadığını kontrol etmek için eklenti temel dosyanıza kontrolü eklemeniz gerekecektir. Klasik bir örnek, WooCommerce sınıflarını genişleten bir WooCommerce eklentisi geliştirirken.

Örneğin, WooCommerce ödeme ağ geçidi eklentisi geliştirirken, eklentiniz etkinleştirildikten hemen sonra veya tercihen eklenti etkinleştirme kancası sırasında WooCommerce'in etkin olup olmadığını kontrol etmeniz gerekir.

Bir WordPress Eklentisinin Etkin Olup Olmadığını Kontrol Edin

Neyse ki, WordPress çekirdeği, belirli bir eklentinin etkin olup olmadığını kontrol eden ve doğru veya yanlış döndüren, kullanıma hazır bir yöntem veya işleve sahiptir.

is_plugin_active WordPress

Bu işlev bir boolean - true or false ve bunu özellikle etkinleştirme kancası sırasında kodunuza kolayca dahil edebilirsiniz.

Kontrol ettiğiniz eklenti aktif değilse, kullanıcının eklentiyi kurması için bir başlık bildirimi görüntüleyebilirsiniz.

Aynı işlevi, kullanıcının eklentinizin işleviyle çakışması muhtemel başka bir eklentiyi devre dışı bırakmasını istediğinizde de uygulayabilirsiniz.

İşlev is_plugin_active() Hızlı Gözden Geçirme

Projenizde etkin bir şekilde nasıl kullanılacağı hakkında daha fazla bilgi edinmek için is_plugin_active() işlevine hızlıca bakalım.

is_plugin_active( string $plugin )

Bu işlev, eklentiler dizinindeki eklentinin göreli yolunun temsili olan bir dize parametresi alır.

 function is_plugin_active( $eklenti ) {
    return in_array( $plugin, (dizi) get_option( 'active_plugins', array() ) ) || is_plugin_active_for_network($eklenti);
}

Örneğin, WooCommerce, yol üzerinde gösterildiği gibi woocommerce/woocommerce.php .
aşağıdaki resim:
WooCommerce Temel Dosya Dosya Yolu

is_plugin_active() işlevi, aşağıdaki kod parçacığını kullanarak eklentinin arka uçta etkin olup olmadığını kontrol etmek için kullanılabilir

 <?php
/**
* Eklentiyi algıla. Yalnızca Yönetici alanında kullanım içindir.
*/
if ( is_plugin_active( 'eklenti-dizini/eklenti-dosyası.php' ) ) {
//eklenti aktif
}

Örneğin, WooCommerce'in aktif olup olmadığını kontrol etmek istiyorsanız, aşağıdaki kodu kullanarak kontrol edebilirsiniz:

 <?php
/**
* Yönetici alanında WooCommerce Eklentisinin etkin olup olmadığını kontrol edin
*/
if ( is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
//WooCommerce eklentisi etkinleştirildi
}

Eklenti Temel Dosyası ve Temel Dizin

Gördüğünüz gibi WooCommerce eklentisi basename ve bahsettiğim klasörü yukarıdaki görseli kullanarak resimli olarak kullandım.
Bir eklentinin temel adı, ana dosya olan tek bir dosya eklentisinin dosya adıdır ve bazen dizin/klasörle eşleşir, ancak her durumda değil - bazı eklentiler farklıdır.

Eklentinin Multisite'da Etkin olup olmadığını kontrol edin

WordPress multisite için, geliştiricilerin eklentinin multisite ağında etkin olup olmadığını kontrol etmesine yardımcı olmak için tasarlanmış bir işlev vardır. İşlev:

is_plugin_active_for_network( string $plugin )

Bu işlev, tıpkı is_plugin_active( string $plugin ) işlevi gibi çalışır ve eklentinin WordPress çoklu site ağında etkin olup olmadığını belirlemek için aynı şekilde uygulanabilir.

 <?php
function is_plugin_active_for_network( $eklenti ) {
    if ( ! is_multisite() ) {
        yanlış döndür;
    }
 
    $plugins = get_site_option('active_sitewide_plugins');
    if ( isset( $eklentiler[ $eklenti ] ) ) {
        true döndür;
    }
 
    yanlış döndür;
}

Eklentinin Etkin olup olmadığını Kontrol Etmenin Diğer Yolları

Bir eklentinin etkin olup olmadığını kontrol etmek için kullanabileceğiniz başka yollar da vardır. Yerel php işlevlerini class_exists veya function_exists kullanarak kontrol edebilirsiniz. Bu yöntemler, sırasıyla eklentinin sınıfının mı yoksa işlevin mi var olduğunu kontrol eder.

Eklentinin Etkin olup olmadığını Kontrol etmek için function_exists() öğesini kullanma

Bir eklentinin işlevini veya yöntemini biliyorsanız, aşağıdaki kod parçasında olduğu gibi function_exists yöntemini kullanarak kontrol edebilirsiniz:

 <?php
if( function_exists( 'plugin_function' ) ) {
// Eklenti aktif
}

Eklentinin Etkin olup olmadığını Kontrol etmek için class_exists() kullanma

Bir eklentinin ana sınıfını biliyorsanız, aşağıdaki snippet'te olduğu gibi class_exists yöntemini kullanarak kontrol edebilirsiniz:

 <?php
if( class_exists( 'plugin_class' ) ) {
// Eklenti aktif
}

Aşağıdaki kod parçacığında olduğu gibi plugins_loaded kancasında eklentinin etkin olup olmadığını kontrol etmek için bu yöntemlerden birini bağlayabilirsiniz:

 <?php
/*
* Bir eklentinin Aktif olup olmadığını test edin
*/

function njengah_is_plugin_name_active() {
if( class_exists( 'Plugin_Class' ) ) {

// Aktif, yani mantık burada

}
}
add_action('plugins_loaded', 'njengah_is_plugin_name_active');

Çözüm

Bu yazıda, başka bir eklenti veya tema geliştirirken bir eklentinin etkin olup olmadığını kontrol etmenin çeşitli yollarını vurguladık. Bunlar, tüm WordPress geliştirme görevlerinize uygulayabileceğiniz kullanışlı yöntemlerdir.

Benzer Makaleler