1. Anasayfa
  2. Hata Çözümleri

WordPress Hatası: “sprintf() Too Few Arguments” ve Çözüm Yolu

WordPress Hatası: “sprintf() Too Few Arguments” ve Çözüm Yolu
WordPress Hatası sprintf Too Few Arguments ve Çözüm Yolu
0

Sorunun Tanımı

sprintf() Too Few Arguments hatası
sprintf() Too Few Arguments hatası

WordPress’te class-bulk-upgrader-skin.php dosyasının belirli bir satırında aşağıdaki hata ile karşılaşabilirsiniz:

Warning: sprintf() Too few arguments

Bu hata, WordPress’in toplu yükseltme işlemleri sırasında oluşur. sprintf() fonksiyonu, belirtilen dizgedeki yer tutucuları (%s, %d vb.) eksik ya da hatalı argümanlarla doldurduğu için hata verir.

Önemli!

  • Eğer WordPress çekirdek dosyalarında düzenleme yapıyorsanız, yedeğinizi mutlaka alın.
  • WordPress güncellemeleri sonrasında dosyanızın üzerine yazılabileceğini unutmayın. Uzun vadeli çözüm için bir child theme kullanarak gerekli düzenlemeleri buradan yapabilirsiniz.

Hata Veren Kod Parçacığı

Dosya yolu: wp-admin/includes/class-bulk-upgrader-skin.php

Aşağıdaki kod hatalı bir yapı içermektedir:

if ( $this->result && ! is_wp_error( $this->result ) ) {
	if ( ! $this->error ) {
		echo '<div class="updated js-update-details" data-update-details="progress-' . esc_attr( $this->upgrader->update_current ) . '">' .
			'<p>' . sprintf( $this->upgrader->strings['skin_update_successful'], $title ) .
			' <button type="button" class="hide-if-no-js button-link js-update-details-toggle" aria-expanded="false">' . __( 'Show details.' ) . '</button>' .
			'</p></div>';
	}

	echo '<script type="text/javascript">jQuery(\'.waiting-' . esc_js($this->upgrader->update_current) . '\').hide();</script>';
}

Hata Nedeni

sprintf() fonksiyonu, skin_update_successful dil dizgesinde belirttiğiniz yer tutuculara uygun sayıda argüman almalıdır. Eğer beklenen birden fazla parametre varsa ama sadece bir tane verilmişse, bu hata ortaya çıkar.

Çözüm Yolu

Hatanın çözümü için, sprintf() çağrısında gerekli parametreleri eksiksiz ve doğru şekilde eklememiz gerekiyor. Düzgün çalışan alternatif kod aşağıdaki gibidir:

if ( $this->result && ! is_wp_error( $this->result ) ) {
	if ( ! $this->error ) {
		echo '<div class="updated"><p>' . 
			sprintf(
				$this->upgrader->strings['skin_update_successful'], 
				$title, 
				'jQuery(\'#progress-' . esc_js($this->upgrader->update_current) . '\').toggle();jQuery(\'span\', this).toggle(); return false;'
			) . 
		'</p></div>';
	}
	echo '<script type="text/javascript">jQuery(\'.waiting-' . esc_js($this->upgrader->update_current) . '\').hide();</script>';
}

Yapılan Değişiklikler

  1. sprintf() fonksiyonunda ikinci bir parametre eklendi:
    • jQuery kodu eklendi: jQuery(\'#progress-' . esc_js($this->upgrader->update_current) . '\')...
  2. Hatalı olan data-update-details kullanımı kaldırıldı.
  3. Kod daha temiz ve anlaşılır hale getirildi.

Dosyayı Güncelleme Adımları

  1. Dosya Konumu:
    wp-admin/includes/class-bulk-upgrader-skin.php
  2. Hatalı kodu yukarıda verdiğimiz doğru kodla değiştirin.
  3. Değişikliklerin etkili olması için WordPress önbelleğini temizleyin ve test edin.

Bu düzenleme ile “sprintf() Too few arguments” hatasını çözüme kavuşturmuş olacaksınız. Toplu güncelleme işlemleri sırasında WordPress artık düzgün bir şekilde hata vermeden çalışacaktır.

Bu Yazıya Tepkiniz Ne Oldu?
  • 2
    be_endim
    Beğendim
  • 0
    alk_l_yorum
    Alkışlıyorum
  • 0
    _a_rd_m
    Şaşırdım
  • 0
    _z_ld_m
    Üzüldüm
  • 0
    k_zg_n_m
    Kızgınım
  • 0
    be_enmedim
    Beğenmedim
İlginizi Çekebilir

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir