2009-10-05 10 views
0

J'ai appris comment créer un plugin sur WordPress il y a quelques temps. Cependant, WordPress a tout changé et j'essaye de créer le même plugin en utilisant le nouveau format WordPress. J'ai lu plusieurs choses, mais j'ai essayé de sauter directement en modifiant le plugin WordPress Text Field (un de mes objectifs avec la refonte du plugin était de le rendre utilisable plusieurs fois). Je réalise que le code est vraiment approximatif, mais je suis coincé. J'ai essayé d'ajouter deux nouveaux champs juste pour voir comment les choses se passent et pendant qu'ils apparaissent quand je vais éditer le widget une fois que vous cliquez sur Enregistrer sur le titre et que les premières données sont sauvegardées, les deux autres champs disparaissent. J'ai l'impression qu'il me manque quelque chose d'évident, mais je n'arrive pas à le comprendre. Voici le code:Problèmes avec le plugin WordPress

'widget_text', 'description' => __ ('Texte ou HTML')); $ control_ops = array ('width' => 400, 'height' => 350); $ this-> WP_Widget ('text', __ ('Multi Excerpt'), $ widget_ops, $ control_ops); } widget de fonction ($ args, $ instance) { extrait ($ args); $ title = apply_filters ('widget_title', vide ($ instance ['title'])? '': $ Instance ['title'], $ instance); $ text = apply_filters ('widget_text', $ instance ['texte'], $ instance); $ texta = apply_filters ('widget_text', $ instance ['texta'], $ instance); $ posts = $ instance ['messages']; echo $ before_widget; if (! Vide ($ title)) {echo $ before_title. $ title. $ after_title; }?> '', 'text' => '', 'posts' => '', 'texta' => '')); $ title = strip_tags ($ instance ['title']); $ text = format_to_edit ($ instance ['text']); $ texta = format_to_edit ($ instance ['texta']); $ posts = $ instance ['messages']; ?>

get_field_id ('title'); ?> "> get_field_id ('title');?>" Nom = "get_field_name ('title');?>" Type = "text" valeur = "" />

get_field_id ('text'); ?> "name =" get_field_name ('text'); ?> "> get_field_id ('texta');?>" Nom = "get_field_name ('texta');?>">

get_field_id ('posts'); ?> "> Messages: get_field_id ('messages');>?" Name = "get_field_name ('postes');>?" Type = "text" value = "" />

Merci à l'avance.

Répondre

0

Modifié: J'ai trouvé que ma réponse originale était quelque peu correcte. Voici les détails nécessaires pour résoudre votre problème.

Modifier votre fonction WP_Widget_Excerpt à:

function WP_Widget_Excerpt() { 
    $widget_ops = array('classname' => 'WP_Widget_Excerpt', 'description' => __('Text or HTML')); 
    $control_ops = array('width' => 400, 'height' => 350); 
    $this->WP_Widget('WP_Widget_Excerpt', __('Multi Excerpt'), $widget_ops, $control_ops); 
} 
+0

Merci beaucoup. Je savais qu'il me manquait quelque chose de petit, tout fonctionne bien maintenant. – Erik

0

Si votre widget est en train de faire quelque chose de simple, vous pouvez utiliser Widgetifyr.com pour créer votre widget pour vous. Je crée l'ancien widget de style ainsi que le nouveau widget basé sur la classe 2.8+. De cette façon, votre widget fonctionnera sur plusieurs versions de Wordpress.

Questions connexes