WordPress'de, amacım kenar çubuğuna koyduğum her widget'a özel bir sınıf verebilmek. Tercihen, bu sınıfı her bir widget'ın widget ayarlarına eklemek istiyorum. Ayrıca 3. parti widget'ları.WordPress: Tüm widget ayarlarına config seçeneği ekle
sınıfadı zaten register_sidebar fonksiyonu (% 2 $ s) geçirilir çünkü sınıfadı değişen düşünüyordum:
<?php
register_sidebar(array('before_widget' => '<aside id="%1$s" class="widget %2$s blue">'));
?>
Tabii ben WP çekirdek kodu veya 3. taraf değişmemelidir eklentileri. Bu, widget yapılandırma sürecine girecek bir eklenti yazmam gerektiği anlamına gelir.
Zaten o in_widget_form 'eyleme çengel, tüm widget'ları formları değiştirmek mümkün olduğunu öğrendim:
<?php
add_action('in_widget_form', 'teaserWidgetAddToForm');
function teaserWidgetAddToForm($widget_instance) {
?>
<label for="<?php echo $widget_instance->get_field_id('teaser-classname'); ?>">Custom classname(s):</label>
<input type="text" id="<?php echo $widget_instance->get_field_id('teaser-classname'); ?>" name="<?php echo $widget_instance->get_field_name('teaser-classname'); ?>">
<?php
}
?>
Bu veriler Widget süper sınıfı tarafından kaydedilmelidir, ancak bu verileri almak nasıl (Widget ayarlarını açarken daha sonra ne doldurduğunuzu gösterir.)
Ve bu kaydedilen veriler widget örneğine yerleştirilmelidir - bu işlem bitti mi? Ben böyle bir şey kullanarak tahmin: Yani temelde
<?php
$wp_registered_widgets[<widget_id>]['callback'][0]['widget_options']['classname'] = <chosen_class>;
?>
ben 2 soru var:
- Ben Öyleyse, nasıl bu sorunu (bireysel widget stil)
- adrese doğru yol kullanıyor muyum Wordpress veya 3. parti Eklenti kaynak kodunu değiştirmek zorunda kalmadan ek ayarları kaydetmek ve almak için bir widget örneğini değiştirebilir miyim. Varsayılan olarak
Parlak! Bu arada yeni ayarları kaydedebildim ve "widget_display_callback" kancasını kullanarak geldim. Ancak, yanlış bir şekilde geri döndürebileceğinizi ve $ widget-> widget'ını() kendiniz de çağırabileceğinizi anlayamadınız. Çok teşekkürler! – publicJorn