2013-07-31 7 views
0

Je suis en train d'intégrer un formulaire d'inscription AWeber dans ma barre latérale primaire en utilisant javascript et le widget texte. Cependant, lorsque je clique sur Enregistrer, la roue de progression tourne pour toujours. Lorsque je rafraîchis la page après une longue période, le code est parti. Donc, le vrai problème est que la sauvegarde ne fonctionne pas lorsque mon code est collé là-bas. L'enregistrement fonctionne presque instantanément avec du texte et du HTML, donc je suppose que le javascript est ce qui retient tout. Je n'ai jamais eu de problème avec ça avant. Il était utilisé pour enregistrer sans aucun problème. Voici le code que j'essaie d'enregistrer.Impossible de sauvegarder Javascript dans WordPress widget texte

<script type="text/javascript" src="http://forms.aweber.com/form/78/2041064078.js"></script> 

J'ai même mis à jour WordPress à la dernière version (3.5.2) de 3.4.1 mais je rencontre toujours le même problème.

+0

Quel est votre hébergeur? Cela peut être dû à mod_security –

+0

GoDaddy héberge le site de ce client. – Clavion

Répondre

0

Il semble que mod_security ne vous permet pas d'afficher cela. Vous pourriez être en mesure de le désactiver dans .htaccess (voir ici: How can I disable mod_security in .htaccess file?).

Vous pouvez également être en mesure de le tromper en affichant quelque chose de légèrement différent, comme, par exemple, <div></div><script type="text/javascript" src="http://forms.aweber.com/form/78/2041064078.js"></script>.

Alternativement, vous pouvez simplement coder en dur directement dans le modèle.

0

Peut-être la meilleure façon de le faire est de créer un nouveau widget. C'est assez facile. La structure de base est quelque chose comme ceci:

class MyWidget extends WP_Widget{ 

function MyWidget() { 
    // Instantiate the parent object 
    parent::__construct(false, 'name', array('description'=>'the description', 'classname'=>'class-name')); 
} 

function widget($args, $instance) { 
    extract($args); 

    echo $before_widget; 
    echo '<h3>title</h3>'; 

      //do some logic here 

    echo $after_widget; 
} 

function update($new_instance, $old_instance) { 
    // Save widget options 
} 

function form($instance) { 
    // Output admin widget options form 
} 
} 

function my_init_widgets() { 
    register_widget('MyWidget'); 
} 

add_action('widgets_init', 'my_nit_widgets'); 

C'est tout. Peut-être alors vous devez définir une barre latérale personnalisée, par exemple:

//init sidebar 
add_action('widgets_init', 'sidebars_init'); 

function sidebars_init(){ 
register_sidebar(
    array(
     'id' => 'default-sidebar', 
     'name' => __('Default sidebar'), 
     'description' => __("Generic sidebar"), 
     'before_widget' => '<div id="%1$s" class="widget %2$s">', 
     'after_widget' => '</div>', 
     'before_title' => '<h3 class="widget-title">', 
     'after_title' => '</h3>' 
    ) 
); 

Si vous définissez vos propres widgets, vous pouvez ajouter ce que vous voulez javascript.