为什么我的小部件不工作? - WordPress

时间:2015-05-26 20:34:51

标签: php wordpress widget

我在下面创建了以下小部件,在任何情况下都根本不保存。但它确实进入了更新方法,至少。

<?php

namespace FreyaTheme\WidgetManagement;

use Freya\Factory\Pattern;

class CustomRecentPostsWidget extends \WP_Widget {

    public function __construct() {
        parent::__construct(
            'custom-recent-posts',
            'Custom Recent Posts',
            array ('description' => 'Allows you to show up to two latest posts from a catgeory of your choice.')
        );
    }

    public function widget($args, $instance) {
        var_dump($args, $instance);
    }

    public function form($instance) {
        if (isset($instance['error'])) {
            echo $instance['error'];
        }

        ?>
        <lable for="<?php echo $this->get_field_id('catgeory_name') ?>"> Type in category name </lable>
        <input type="text" id="<?php echo $this->get_field_id('catgeory_name') ?>" required="true" placeholder="something" name="<?php echo $this->get_field_id('catgeory_name') ?>" value="<?php echo $instance['category_name'] ?>">
        <?php
    }

    public function update($newInstance, $oldInstance) {
        $instance = array();
        $oldValue = '';

        var_dump($newInstance, $oldInstance); die();

        if (isset($oldInstance['category_name'])) {
            $oldValue = $oldInstance['category_name'];
        }

        if (empty($newInstance['category_name'])) {
            $instance['error'] =  '<div class="flash-error">Category name cannot be blank.</div>';
            $instance['category_name'] = $oldValue;
            return $instance;
        }

        $term = term_exists($newInstance['catgeory_name'], 'category');

        if ($term === 0 && $term === null) {
            $instance['error'] = '<div class="flash-error">Category name does not exist.</div>';
            $instance['category_name'] = $oldValue;
            return $instance;
        }

        $instance['category_name'] = $newInstance['category_name'];
        return $instance;
    }

}

超级超级基础。没有什么我们都没有看过一百次。在提交表单时,var_dumps函数中的update如何输出:

array (size=0)
  empty
array (size=1)
  'category_name' => string '' (length=0)

那是怎么回事?我可以放入&#34;香蕉&#34;我一无所获。

0 个答案:

没有答案