自定义wordpress小部件的设置未显示

时间:2019-03-28 22:48:11

标签: wordpress widget custom-wordpress-pages

我正在尝试将wordpress(v5.1.1)中的默认图库窗口小部件扩展为子主题。该窗口小部件显示在仪表板的“窗口小部件”部分,但是表单字段从不显示以编辑窗口小部件设置。下面显示了默认画廊小部件和我的小部件(称为“扩展画廊”)的行为。

Picture

我做了什么:我将/wp-includes/widgets/class-wp-widget-media-gallery.php的内容复制并粘贴到了我的子主题文件中,文件名为extended-gallery.php。这两个文件是完全相同的,只是在extended-gallery.php的开头,其中我更改了类名和句柄。

see class-wp-widget-media-gallery.php

我在extended-gallery.php中所做的更改:

class Extended_Gallery extends WP_Widget_Media {

    /**
     * Constructor.
     *
     * @since 4.9.0
     */
    public function __construct() {
        parent::__construct(
            'media_gallery_extended',
            __( 'Extended Gallery' ),
            array(
                'description' => __( 'Displays an image gallery.' ),
                'mime_type'   => 'image',
            )
        );

在functions.php中,我注册了extended-gallery.php

<?php

//custom widgets

require_once("extended-gallery.php");
add_action("widgets_init", "custom_widgets_init");

function custom_widgets_init(){
  register_widget("Extended_Gallery");
}

// add custom style

add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
function my_theme_enqueue_styles() {

    $parent_style = 'parent-style'; 

    wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-style',
        get_stylesheet_directory_uri() . '/style.css',
        array( $parent_style ),
        wp_get_theme()->get('Version')
    );
}

?>

如何获取自定义窗口小部件的设置字段,使其与默认图库窗口小部件的工作方式相同?如果我添加其他字段,会搞砸吗?

1 个答案:

答案 0 :(得分:0)

您的问题是关于在wordpress上创建一个新插件。 您应该“注册”您的小部件。如下所示。

add_action( 'elementor/widgets/widgets_registered', [ $this, 'init_widgets' ] );  

您应该激活新插件。 祝你好运。