有没有办法将默认图像小部件扩展为新的自定义小部件并向其中添加额外的字段?

时间:2019-05-01 作者:Timothy Fisher

最后,我想向现有的默认图像小部件添加一些自定义小部件字段,并将其定义为一个新的自定义小部件。

我试图通过扩展WP_Widget_Media_Image 类,如下所示:

class Theme_Image_Widget extends WP_Widget_Media_Image
{
    /**
     * Widget identifier.
     */
    const WIDGET_SLUG = \'theme_image_widget\';

    /**
     * Widget friendly name.
     */
    const WIDGET_NAME = \'Theme Image Widget\';

    /**
     * Widget description.
     */
    const WIDGET_DESCRIPTION = \'foo\';

    public function __construct()
    {
        WP_Widget_Media::__construct(
            self::WIDGET_SLUG,
            self::WIDGET_NAME,
            array(
                \'classname\'     => self::WIDGET_SLUG,
                \'description\'   => self::WIDGET_DESCRIPTION
            )
        );
    }
此代码使新的小部件出现在小部件区域中,但它不包含默认图像小部件所具有的正常UI。我基本上是想在这个小部件中加入相同的UI,然后向其中添加一些额外的字段。

是否可以在不必为图像小部件重新编写JS UI代码的情况下执行此操作?

1 个回复
SO网友:brian

我想知道你是否成功了?我还试图向内置图像小部件添加一些附加字段。我听了上面的评论,但还是没有运气。我甚至尝试了上面布雷特·唐纳德建议的克隆方法。

非常感谢你。

相关推荐

My widgets do not save

每次我保存我的小部件并离开页面时,我的小部件都会消失。侧边栏已完全清空,不会保存任何更改。控制台或PHP日志中没有任何错误。如果我将小部件直接复制并保存在数据库中widgets_text, 它们将被显示,但我仍然无法在侧边栏中添加或删除任何内容。这只发生在我的右侧边栏上,左侧边栏工作正常,但它们都以相同的方式注册。这是我注册侧边栏的方式:function my_widgets_init() { register_sidebar( array ( \'name\'