Ben bu nihayet vazgeçti.
WordPress 2.8.4 şey geliştiriyorum. Ben kullanmanızı sağlar yeni widget'lar API kolaylığı etkiledi WP_Widget uzanır ve kolayca birden çok örneği var widget oluşturabilirsiniz. Ama bir sorunla karşı karşıya duyuyorum.
Nasıl tema aktivasyon widget'ı otomatik aktive edebilirim? Ben kullanımına denedim:
add_action('sidebars_widgets', array('sidebar-1', array('uc_tagcloud')));
Ama hiçbir başarı ile. Sorun Yeni wordpress API Widget kimlikleri oluşturur ve otomatik kimlik sonuna benzersiz bir id ekler olmasıdır. Ben sadece onu asmak alınamıyor. Ben yukarıdaki çözümü denedim ama kaynak kodu görüntüleyerek gerçek Widget kimliği her zaman vs vs .. uc_tagcloud-2 veya 3 veya 4 görüntüler., Yeni bir örneğe i widget eklemek her zaman.
Ben herhangi bir düşünce takdir ediyorum, ben derin düşündüm ve artık saatlerce internet arama ettik. Yani bu benim son şansım.
Ben temelde kullanıcıların elle sürükleyin ve etkinleştirmek istemiyorum.
Aşağıda benim geliştirdiğim bir örnek widget. I sürükleyin ve ilgili kenar çubuğu koymak eğer iyi çalışır. Nasıl (WP_Widget yeni Widget'lar API) elle sürterek olmadan belirli kenar çubuğuna otomatik olarak aktif hale getirebilirsiniz: Ama benim soru ne .. bilmiyorum
Bu widget kodu:
<?php
/**********************************************************************
Widget: Tag Cloud List
**********************************************************************/
class uc_tagcloud extends WP_Widget {
// Constructor
function uc_tagcloud() {
$widget_ops = array('description' => __('A list of your blog tags for your sidebar','ucms'));
$this->WP_Widget('uc_tagcloud', __('ultimaCMS - Tag Cloud','ucms'), $widget_ops);
}
// Display Widget
function widget($args, $instance) {
extract($args);
$title = esc_attr($instance['title']);
$num = intval($instance['num']);
echo $before_widget.$before_title.$title.$after_title;
// Display widget content
?>
<?php wp_tag_cloud('smallest=9&largest=22&number='.$num); ?>
<?php
echo $after_widget;
}
// When Widget Control Form Is Posted
function update($new_instance, $old_instance) {
if (!isset($new_instance['submit'])) {
return false;
}
$instance = $old_instance;
$instance['title'] = strip_tags($new_instance['title']);
$instance['num'] = intval($new_instance['num']);
return $instance;
}
// DIsplay Widget Control Form
function form($instance) {
global $wpdb;
$instance = wp_parse_args((array) $instance, array('title' => __('Tag Cloud','ucms'), 'num' => 100));
$title = esc_attr($instance['title']);
$num = intval($instance['num']);
?>
<p>
<label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:','ucms'); ?></label>
<input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" />
</p>
<p>
<label for="<?php echo $this->get_field_id('num'); ?>"><?php _e('Number of tags:','ucms'); ?></label>
<input class="widefat" id="<?php echo $this->get_field_id('num'); ?>" name="<?php echo $this->get_field_name('num'); ?>" type="text" value="<?php echo $num; ?>" />
<br /><small>Enter 0 to display all tags</small>
</p>
<input type="hidden" id="<?php echo $this->get_field_id('submit'); ?>" name="<?php echo $this->get_field_name('submit'); ?>" value="1" />
<?php
}
}
### Initiate widget
add_action('widgets_init', 'uc_tagcloud_init');
function uc_tagcloud_init() {
register_widget('uc_tagcloud');
}
?>
Bu, i love it yeni API çok basit. Ama ben sadece belirli bir kenar çubuğu üzerindeki widget bir örneğini etkinleştirmek nasıl oto alınamıyor. Herhangi bir yardım?