Eklenti sınıfında herkese açık veriler için basit alanlar sağlamak istiyorum: e-posta, telefon numarası, Twitter vb. Liste uzatılabilir.
Ayrıntılar için GitHub'daki Genel Kişi Verileri eklentisine bakın.
Kullanımı basit tutmak için, yazması kolay kısa kodlar sunmak istiyorum:
[public_email]
[public_phone]
[public_something]
Tek fark ikinci kısımdır. Hata kodlu oldukları için kısa kodlar için başka argümanlar istemiyorum. Bu yüzden eklenti sınıfımdaki tüm alanlar için bir kısa kod işleyicisi kaydediyorum:
foreach ( $this->fields as $key => $value )
{
add_shortcode( 'public_' . $key, array( $this, 'shortcode_handler' ) );
}
Şimdi shortcode_handler()
hangi kısa kodun çağrıldığını bilmek zorunda. Sorum şu: Bunu nasıl yaparım?
Geçerli geçici çözümüm başka bir işlev:
protected function current_shortcode()
{
$backtrace = debug_backtrace( DEBUG_BACKTRACE_IGNORE_ARGS );
return $backtrace[3]['args'][0][2];
}
Bu… işe yarıyor the_content()
. Ancak ne zarif ne de sağlamdır.
Okudum wp-includes/shortcodes.php
, ama şimdi nasıl daha iyi yapılacağını göremiyorum.