我需要一些关于如何有一个基于元而不是页面侧栏的方向

时间:2013-04-16 作者:dcp3450

我正在开发一个插件,允许用户创建“页面/帖子类型”,自定义类型样式,然后用该类型标记页面/帖子。所有这些都有效。我的问题是这个插件还需要允许他们将小部件附加到所述类型。

我无法知道在任何时候有多少“类型”。

该插件的工作原理如下:

用户创建类型(猫、狗、鼠标)

  • 用户指定类型的背景色、链接颜色等。对于类型,用户指定该类型的小部件当查看页面/帖子时,页面会检测其是否有类型。如果这样做,它会将所有相关数据拉入该类型。

    一切都很完美。

    我知道我必须注册一个侧边栏,但我不能注册每种类型,因为我不知道有多少,用户可以根据自己的喜好创建和删除。

    我的计划:

    注册一个名为“custom sidebar”的边栏创建一个模仿“Widgets”页面的页面,允许用户在“custom sidebar”上添加Widgets。插件根据“type”的id存储边栏的数据。我不能使用其他插件,因为边栏功能必须直接与插件融合。我甚至不确定这是否可行,甚至不知道从哪里开始。任何朝着正确方向的推动都将是伟大的!

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

    最后,我只创建了一个侧栏和任何放置在那里的项目,并添加了一个下拉框来为其指定一个特殊位置。

    SO网友:Ralf912

    创建侧栏$type . \'_sidebar\'$type . \'_sidebar\' (例如dog_sidebar)wp-admin/widgets.php?sidebar_type=dog_sidebar)not 将显示。您可以使用此功能:

      global $wp_registered_sidebars;
    
      $type =filter_input( INPUT_GET, \'sidebar_type\', FILTER_SANITIZE_STRIPPED );
    
      if ( empty( $type ) )
        return;
    
      if ( isset( $wp_registered_sidebars[ $type ] ) ) {
        $keep = array( $type => $wp_registered_sidebars[ $type ] );
        $wp_registered_sidebars = array_intersect_key( $keep, $wp_registered_sidebars );
      }
    
    }
    
    add_action( \'sidebar_admin_setup\', \'filter_sidebars\', 1, 0 );
    
    例如,在《十二二》中,有三个注册的侧栏(侧栏ID):侧栏-1、侧栏-2和侧栏-3。如果您现在转到your-blogdoma.in/wp-admin/widgets.php?sidebar_type=sidebar-3, 只剩下第三个侧栏(IDsidebar-3).

    如果你已经注册了侧边栏dog_sidebar 和访问your-blogdoma.in/wp-admin/widgets.php?sidebar_type=dog_sidebar, 唯一可见的侧栏是“Dog侧栏”(IDdog_sidebar).

    插件根据“type”的id存储提要栏的数据

    没有必要这样做。每个侧边栏都存储自己的数据。但也许我误解了您试图用“为侧边栏存储数据”所做的操作。

    结束

    相关推荐

    Individual Widgets per Page

    在我的Wordpress网站(仅限于页面,无帖子)中,我需要在侧边栏中放置一些静态blob。我们可以将这些“blob”称为小部件。至少他们会有一个固定的html内容,如“摘要1”、“摘要2”、“免责声明”、“foo策略”。。。我需要的是,在每一页上都有不同的安排。因此,这不仅仅是“单一”对“归档”,而是真正的“产品页面A”对“产品页面B”对“关于我们”对“服务条款”。。。我在考虑自定义元框,以便在单个编辑器页面上打开和关闭它们wp-admin/post.php?post=196&action=ed