Display single widget

时间:2013-06-21 作者:Eric

我创建了一个简单的一次性小部件,让管理员在主页上更改一些副本,但小部件没有显示其内容。

在主页上,我有以下代码:<?php the_widget(\'home_widget\'); ?>

这是小部件本身的源代码,它出现在我的函数中。php文件(Jeff Starr的Clean Markup Widget):

// Clean Markup Widget @ http://perishablepress.com/clean-markup-widget/
add_action(\'widgets_init\', create_function(\'\', \'register_widget("home_widget");\'));
class home_widget extends WP_Widget {
    function __construct() {
        parent::WP_Widget(\'home_widget\', "home page box",
                          array(\'description\'=>"The contents of the home page box"));
    }
    function widget($args, $instance) {
        extract($args);
        $markup = $instance[\'markup\'];
        if ($markup) echo $markup;
    }
    function update($new_instance, $old_instance) {
        $instance = $old_instance;
        $instance[\'markup\'] = $new_instance[\'markup\'];
        return $instance;
    }
    function form($instance) {
        if ($instance) $markup = esc_attr($instance[\'markup\']);
        else $markup = __(\'Sample markup\', \'markup_widget\'); ?>
        <p>
            <label for="<?php echo $this->get_field_id(\'markup\'); ?>"><?php _e(\'Markup/text\'); ?></label><br />
            <textarea class="widefat" id="<?php echo $this->get_field_id(\'markup\'); ?>" name="<?php echo $this->get_field_name(\'markup\'); ?>" type="text" rows="16" cols="20" value="<?php echo $markup; ?>"><?php echo $markup; ?></textarea>
        </p>
<?php }
}
这个小部件在管理工具中看起来和工作都很完美,我可以添加文本并保存它,等等。但是主页上没有显示任何内容。如何让它显示小部件内容?

需要明确的是:当我将小部件放在管理界面的侧栏中时(因为您必须这样做),我不想显示侧栏(因为我在那里有其他小部件)。我只想让这个一次性小部件在主页上显示它的内容。非常简单。

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

如果可以充分识别,可以强制在后端修改的特定小部件显示出来。我认为这很容易出错。

你应该能够the_widget 如果您将足够的详细信息传递给(最多)three 参数--如下所示:

the_widget(\'home_widget\',array(\'markup\' => \'Yay\')); 
但您无法从后端配置它。

我建议,如果要使用小部件,请为小部件创建一个侧栏。

结束

相关推荐

Using tabs in admin widgets

更新:我应该指出,我在插件/主题选项页面上测试了下面的方法,效果非常好。事实上,我还能够包括jQuery cookie插件,以保留页面加载之间的当前选项卡选择(很好!)。当您有多个小部件选项时,尝试向管理小部件添加选项卡以减少表单占用空间。我正在使用WordPress附带的jQuery UI选项卡。以下是我迄今为止在插件中编写的代码。http://pastebin.com/fe4wdBcp当小部件被拖动到小部件区域时,选项卡似乎呈现为OK,但您无法单击查看第二个选项卡。更糟糕的是,如果刷新窗口小部件页面,