2009-10-05 2 views
0

Я узнал, как создать плагин на WordPress некоторое время назад. Однако WordPress все изменил, и я пытаюсь создать тот же плагин, используя новый формат WordPress. Я прочитал несколько вещей, но попытался перейти прямо, изменив плагин WordPress Text Field (одна из моих целей с повторным подключением плагина заключалась в том, чтобы использовать его несколько раз). Я понимаю, что код действительно груб, но я застрял. Я попытался добавить два новых поля, чтобы посмотреть, как обстоят дела, и пока они появляются, когда я перехожу к редактированию виджета после того, как вы нажмете «Сохранить» в заголовке, и данные первой текстовой области будут сохранены, остальные два поля исчезнут.Проблемы с плагином WordPress

У меня такое чувство, что мне не хватает чего-то очевидного, но я просто не могу понять это. Вот код:

'widget_text', 'description' => __ ('Текст или HTML')); $ control_ops = array ('width' => 400, 'height' => 350); $ this-> WP_Widget ('text', __ ('Multi Excerpt'), $ widget_ops, $ control_ops); } виджет функции ($ args, $ instance) { экстракт ($ args); $ title = apply_filters ('widget_title', empty ($ instance ['title'])? '': $ Instance ['title'], $ instance); $ text = apply_filters ('widget_text', $ instance ['text'], $ instance); $ texta = apply_filters ('widget_text', $ instance ['texta'], $ instance); $ posts = $ instance ['posts']; echo $ before_widget; if (! Empty ($ 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 ['posts']; ?>

get_field_id ('title'); ?> "> get_field_id ('title');?>" Name = "get_field_name ('title');?>" Type = "text" value = "" />

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

get_field_id ('posts'); ?> "> Сообщений: get_field_id ('сообщений');>?" Имя = "get_field_name ('сообщения');>?" Тип = "текст" значение = "" />

Спасибо заранее.

ответ

0

Отредактировано: но я нашел, что мой первоначальный ответ был несколько верным. Ниже приведены детали, необходимые для устранения вашей проблемы.

Изменения вашей 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

Спасибо, связка. Я знал, что мне не хватает чего-то маленького, теперь все отлично работает. – Erik

0

Если ваш виджет делает что-то простое, вы можете использовать Widgetifyr.com создать виджет для вас. Я создаю виджет старого стиля, а также новый виджет класса 2.8+. Таким образом ваш виджет будет работать в других версиях Wordpress.