可以通过插件脚本预设小部件的内容吗?

时间:2010-12-15 作者:Scott B

这个插件是一个简单的演示测试,看看我是否可以用文本动态地填充预先存在的小部件区域。在本例中,我的主题创建了小部件区域“主标题小部件”,我正试图用下面的“文本”内容填充它。我被卡在电话线上了。。。

$sidebars_widgets[$sidebar_id] = "widget_text-".$id;
因为我不确定如何获取对动态创建的文本小部件对象的引用,以便预设其内容并将其放置在我的“主标题小部件”中。。。

<?php
/*
Plugin Name: Widget Test
*/
function cb_activate_widgettest(){

$sidebar_id = \'home-header-widget\';
$sidebars_widgets = get_option(\'sidebars_widgets\');
$id = count($opts)+1;
$sidebars_widgets[$sidebar_id] = array("text-".$id);

$ops = get_option(\'widget_text\');
// find an $id that works...
$ops[$id] = array(
  \'title\' => \'foo hoo\',
  \'text\' => \'bar mitz\', // content?
);
update_option(\'widget_text\', $ops); 
update_option(\'sidebars_widgets\', $sidebars_widgets);

}

register_activation_hook(__FILE__, \'cb_activate_widgettest\');
?>

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

您的代码中有一些错误:

您需要手动指定实例ID,例如2。如果要附加文本小部件,而不是覆盖侧栏的内容,请尝试使用$id = count($opts)+1, 或者你可以生成一个随机ID。

  • 使用widget_ID_base-instance_ID 在里面 $sidebars_widgets[$sidebar_id] = "widget_text-".$id;, 将其放入数组中:

    $sidebars_widgets[$sidebar_id] = array("text-".$id);

  • SO网友:t31os

    How to preset a sidebar widget with default content via script?
    How to add multiple copies of a widget from "available widgets"
    https://wordpress.stackexchange.com/questions/5282/code-to-dynamically-populate-a-widget-with-preset-content

    这是您关于小部件设置的第四个主题,这难道不能与您的任何其他小部件主题内联解决吗?

    我觉得这些小部件主题开始变得有点重复。

    结束

    相关推荐

    Why use widgets?

    我对使用WordPress很陌生,我想知道使用小部件的好处是什么?看here 这听起来像是为那些不是程序员的人准备的,他们想在他们的网站上添加插件。对吗?或者小部件是否在某种程度上使站点更加健壮?