Aşağıdaki koşullarla bir WordPress widget'ı için komut dosyaları ve stiller yüklemeye çalışıyorum ...
- Betikler HEAD'e yüklenmelidir ZORUNLU (aksi takdirde bozulur).
- Komut dosyaları SADECE widget gerçekten görüntülendiğinde yüklenmelidir (oldukça ağırdır).
Çok fazla arama yaptım ve bu yaygın (çözülmemiş) bir sorun gibi görünüyor ... ama burada birisinin başarıyla bir geçici çözüm uyguladığını umuyorum.
Bu şimdiye kadar aldığım en iyisi ...
Aşağıda, kenar çubuğuna metin yazdıran basit bir widget bulunmaktadır. Başarıyla koşullu olarak jQuery yükler (widget gerçekten görüntülendiğinde) ... sadece altbilgide hiç! (Not: Bu kesmek sadece geriye dönük uyumluluk sağlayabilir , ancak yalnızca WordPress 3.3 üzerinde de çalışabilir ).
class BasicWidget extends WP_Widget
{
function __construct() {
parent::__construct(__CLASS__, 'BasicWidget', array(
'classname' => __CLASS__,
'description' => "This is a basic widget template that outputs text to the sidebar"
));
}
function form($instance) {
$instance = wp_parse_args( (array) $instance, array( 'title' => '' ) );
$title = $instance['title'];
?>
<p><label for="<?php echo $this->get_field_id('title'); ?>">Title: <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($title); ?>" /></label></p>
<?php
}
function update($new_instance, $old_instance) {
$instance = $old_instance;
$instance['title'] = $new_instance['title'];
return $instance;
}
function widget($args, $instance) {
extract($args, EXTR_SKIP);
echo $before_widget;
$title = empty($instance['title']) ? ' ' : apply_filters('widget_title', $instance['title']);
if (!empty($title))
echo $before_title . $title . $after_title;;
echo "<h1>This is a basic widget!</h1>";
echo $after_widget;
// if we're echoing out content, enqueue jquery.
if (!empty($after_widget)) {
wp_enqueue_script('jquery');
}
}
}
add_action( 'widgets_init', create_function('', 'return register_widget("BasicWidget");') );
WordPress widget'ları işlemeye başladığında, sıralamak (veya daha önce sıralanan bir şeyin kaydını silmek) için çok geç görünüyor.
Herhangi bir fikir çok takdir edilecektir!
İşaret.