WordPress “Function create_function() is deprecated in” Hatası ve Çözümü

Wordpress "Function create_function() is deprecated in" Hatası ve Çözümü

WordPress sitenizde bir yavaşlama mı var? Belirli aralıklarla wp-config.php dosyasındaki WP_DEBUG komutunu False’den True’ya çevirmekte yarar var.. Bir bakıyorsunuz ki temanızdaki eski ve artık kullanılmayan bir komuttan dolayı sunucuya boşu boşuna yük oluyorsunuz.. create_function komutu da bunlardan birisi.. Peki çözümü nedir?

create_function() Fonksiyonu Alternatifi!

Bir çok “artık kullanılmayan” komut için yaptığımızı, bu seferde create function komutu için yapıyoruz ve o komutu function komutu ile değiştiriyoruz. Bir örnek ile konuyu anlatırsam belki daha faydalı olacaktır..

Diyelim ki eski kodlarımız şu şekilde;

add_action( 'widgets_init', create_function( '', 'register_widget( "mts_post_slider_widget" );' ) );
add_action( 'widgets_init', create_function( '', 'register_widget( "mts_trending_posts_widget" );' ) );
add_action( 'widgets_init', create_function( '', 'register_widget( "mts_top_posts_widget" );' ) );

Gördüğünüz gibi hepsinde create_function var…

Onları şu şekle getiriyoruz;

add_action( 'widgets_init', function() { return register_widget("mts_post_slider_widget"); } );
add_action( 'widgets_init', function() { return register_widget("mts_trending_posts_widget"); } );
add_action( 'widgets_init', function() { return register_widget("mts_top_posts_widget"); } );

Anlayacağınız üzere, create_function komutunu çıkarıyor, onun yerine function ekliyor, widget adını yeni yerine yerleştiriyoruz.

Aslında kullandığımız yeni kalıp şu;

add_action( 'widgets_init', function() { return register_widget("widget-adı"); } );

Artık create_function ile alakalı hata mesajlarından ve sunucu yükünden kurtuldunuz.

Detaylar için buraya bakabilir, konuyla alakalı sorularınız olursa konu altından yorum olarak yazabilirsiniz.