Проблемы с плагином WordPress - PullRequest
       12

Проблемы с плагином WordPress

0 голосов
/ 05 октября 2009

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

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

'widget_text', 'description' => __ ('Text или HTML')); $ control_ops = array ('width' => 400, 'height' => 350); $ this-> WP_Widget ('text', __ ('Multi Excerpt'), $ widget_ops, $ control_ops); } виджет функции ($ args, $ instance) { экстракт ($ арг); $ title = apply_filters ('widget_title', пусто ($ 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 ( 'название'); ?> "> get_field_id ( 'название'); ?> "name =" get_field_name ('title'); ?> "type =" text "value =" "/>

get_field_id ( 'текст'); ?> "name =" get_field_name ('text'); ?> "> get_field_id ( 'texta'); ?> "name =" get_field_name ('texta'); ?> ">

get_field_id ( 'сообщения'); ?> "> Сообщений: get_field_id ( 'сообщения'); ?> "name =" get_field_name ('posts'); ?> "type =" text "value =" "/>

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 19 ноября 2009

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

0 голосов
/ 06 октября 2009

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

Измените 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);
}
...