如何使用自定义菜单选择创建WordPress小部件

格斯特里克林德

我正在为WordPress创建自定义窗口小部件,但希望使用与默认“自定义菜单”窗口小部件相同的选择菜单。到目前为止,除了选择的菜单之外,我的所有工作都没有保存或未在前端显示。任何帮助或指导与此表示赞赏。谢谢。

为简便起见,我删除了额外的小部件选项,因此,基本上,它看起来非常接近“自定义菜单”小部件:

class kedc_mini_sitemap extends WP_Widget {

/*constructor*/
function kedc_mini_sitemap() {
    parent::WP_Widget(false, $name = 'Mini Sitemap');
}

/**/
function widget($args, $instance) {
    extract( $args );

    // widget options
    $title = apply_filters('widget_title', $instance['title']);
    $nav_menu1 = ! empty( $instance['nav_menu'] ) ? wp_get_nav_menu_object( $instance['nav_menu'] ) : false;
    $checkbox = $instance['checkbox'];

    echo $before_widget;    

    if ($title) {
        echo $before_title . $title . $after_title;
    }

    if ($nav_menu1) {
        echo wp_nav_menu( array( 'fallback_cb' => '', 'menu' => $nav_menu1 ) );
    }


    if ($checkbox == true) {
        echo 'This message is displayed if our checkbox is checked.';
    }

    echo $after_widget;
}

/* saves options chosen from the widgets panel */
function update($new_instance, $old_instance) {
    $instance = $old_instance;
    $instance['title'] = strip_tags($new_instance['title']);
    $instance['nav_menu'] = (int) $new_instance['nav_menu'];
    $instance['checkbox'] = strip_tags($new_instance['checkbox']);
    return $instance;
}

/* display widget in widgets panel */
function form($instance) {  

    $title = esc_attr($instance['title']);
    $nav_menu1 = isset( $instance['nav_menu'] ) ? $instance['nav_menu'] : '';
    $checkbox = esc_attr($instance['checkbox']);

    $menus1 = get_terms( 'nav_menu', array( 'hide_empty' => false ) );

    ?>

    <p>
        <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Widget Title:'); ?></label>
        <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" />
    </p>

    <p>
        <label for="<?php echo $this->get_field_id('nav_menu'); ?>"><?php _e('Select Menu:'); ?></label>
        <select id="<?php echo $this->get_field_id('nav_menu'); ?>" name="<?php echo $this->get_field_name('nav_menu'); ?>">
            <?php
                foreach ( $menus1 as $menu1 ) {
                    echo '<option value="' . $menu1->term_id . '"'
                        . selected( $nav_menu, $menu1->term_id, false )
                        . '>'. $menu1->name . '</option>';
                }
            ?>
        </select>
    </p>

    <p>
        <input id="<?php echo $this->get_field_id('checkbox'); ?>" name="<?php echo $this->get_field_name('checkbox'); ?>" type="checkbox" value="1" <?php checked( '1', $checkbox ); ?>/>
        <label for="<?php echo $this->get_field_id('checkbox'); ?>"><?php _e('Do you want this to display as 2 columns?'); ?></label>
    </p>

    <?php
}

}

// register widget
add_action('widgets_init', create_function('', 'return register_widget("kedc_mini_sitemap");'));
布拉索菲洛

您在form()函数中有错别字$nav_menu1$nav_menu

为变量使用更有意义,更严格和更具描述性的名称。例如,$menus1可以称为$get_nav_menus

使用良好的IDE(例如NetBeans或类似产品),然后查看WordPress编码标准手册

哦,是的,您的代码正在转储PHP Notices,始终在启用WP_DEBUG的情况下进行开发

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何创建自定义的fld sdk小部件,重建flutter和使用新的小部件

来自分类Dev

在Wordpress中创建自定义小部件

来自分类Dev

使用指定的操作地址在 Wordpress 中创建自定义登录小部件

来自分类Dev

如何根据对象模型内容使用自定义小部件创建ListView

来自分类Dev

如何在Xamarin小部件中使用自定义行创建ListView

来自分类Dev

使用一组现有的小部件创建自定义小部件?

来自分类Dev

WordPress,meta_filter_posts损坏了自定义菜单小部件

来自分类Dev

如何自定义android小部件

来自分类Dev

WordPress自定义小部件记住多个选择选项

来自分类Dev

在自定义cms中创建类似于WordPress的小部件

来自分类Dev

如何将自定义窗口小部件添加为ToolButton的弹出菜单?

来自分类Dev

无需使用小部件tk的自定义菜单栏

来自分类Dev

Flutter:如何从现有的窗口小部件正确创建自定义窗口小部件并使用其属性(有时有条件)

来自分类Dev

如何使用Wordpress中的选项选择制作自定义菜单

来自分类Dev

在wordpress上自定义主题“我的登录”小部件

来自分类Dev

如何在应用小部件中创建类似于Google Play音乐小部件中的自定义视图?

来自分类Dev

使用 Qt Designer(生成的 GUI)创建自定义小部件并将它们提升为默认小部件

来自分类Dev

如何指定自定义WordPress主题的区域必须包含小部件\模块?

来自分类Dev

使用UI设计文件并使用自定义构造函数QT创建自定义小部件

来自分类Dev

无法在 WordPress 中使用自定义小部件在页面上显示 5 个帖子

来自分类Dev

cakephp 3.x 创建自定义小部件

来自分类Dev

如何创建自定义单选按钮?

来自分类Dev

如何在C语言中的GTK3中创建自定义小部件?

来自分类Dev

如何创建自定义锁屏小部件(我只想显示一个按钮)

来自分类Dev

SAP HYBRIS [Y]:如何在后台创建我们的自定义小部件

来自分类Dev

Odoo:如何使用菜单ID选择自定义字段

来自分类Dev

为ruby gem dashing.io创建自定义小部件-或合并小部件元素

来自分类Dev

如何在不导入自定义小部件类包的情况下使用自定义小部件和uic.loadUi?

来自分类Dev

如何在自定义小部件中显示QChartView?

Related 相关文章

  1. 1

    如何创建自定义的fld sdk小部件,重建flutter和使用新的小部件

  2. 2

    在Wordpress中创建自定义小部件

  3. 3

    使用指定的操作地址在 Wordpress 中创建自定义登录小部件

  4. 4

    如何根据对象模型内容使用自定义小部件创建ListView

  5. 5

    如何在Xamarin小部件中使用自定义行创建ListView

  6. 6

    使用一组现有的小部件创建自定义小部件?

  7. 7

    WordPress,meta_filter_posts损坏了自定义菜单小部件

  8. 8

    如何自定义android小部件

  9. 9

    WordPress自定义小部件记住多个选择选项

  10. 10

    在自定义cms中创建类似于WordPress的小部件

  11. 11

    如何将自定义窗口小部件添加为ToolButton的弹出菜单?

  12. 12

    无需使用小部件tk的自定义菜单栏

  13. 13

    Flutter:如何从现有的窗口小部件正确创建自定义窗口小部件并使用其属性(有时有条件)

  14. 14

    如何使用Wordpress中的选项选择制作自定义菜单

  15. 15

    在wordpress上自定义主题“我的登录”小部件

  16. 16

    如何在应用小部件中创建类似于Google Play音乐小部件中的自定义视图?

  17. 17

    使用 Qt Designer(生成的 GUI)创建自定义小部件并将它们提升为默认小部件

  18. 18

    如何指定自定义WordPress主题的区域必须包含小部件\模块?

  19. 19

    使用UI设计文件并使用自定义构造函数QT创建自定义小部件

  20. 20

    无法在 WordPress 中使用自定义小部件在页面上显示 5 个帖子

  21. 21

    cakephp 3.x 创建自定义小部件

  22. 22

    如何创建自定义单选按钮?

  23. 23

    如何在C语言中的GTK3中创建自定义小部件?

  24. 24

    如何创建自定义锁屏小部件(我只想显示一个按钮)

  25. 25

    SAP HYBRIS [Y]:如何在后台创建我们的自定义小部件

  26. 26

    Odoo:如何使用菜单ID选择自定义字段

  27. 27

    为ruby gem dashing.io创建自定义小部件-或合并小部件元素

  28. 28

    如何在不导入自定义小部件类包的情况下使用自定义小部件和uic.loadUi?

  29. 29

    如何在自定义小部件中显示QChartView?

热门标签

归档