更灵活的侧边栏和小部件管理

时间:2011-05-02 作者:Roman

我想有一个灵活的边栏/小部件管理插件。事实上,我想让用户可以选择每页/每篇文章应该显示哪个侧栏。

我知道有很多侧边栏插件。不幸的是,我还没有找到一个能满足我所有愿望的。所以我想自己编写代码。您认为以下哪种可能性是最好和最灵活的?或者你有其他的方法吗?

可能性对register\\u侧栏在插件/函数中调用的功能进行硬编码。php并为post_edit.php, post_new.php 屏幕。

没有那么灵活。如果用户有100个页面,并且每个页面都应该有不同的侧栏,那么用户必须手动注册其他侧栏Widget Logic 在后端进行更细粒度的过滤。

这对程序员或有经验的WordPress用户来说很好,但对普通用户来说却不太好。必须以友好的方式映射条件标记。而且is_page(id) 可能会在多语言网站上产生问题,其中使用另一个id存储不同语言的帖子flexible-sidebars 自定义帖子类型。此CPT中的每个帖子都用在通用侧栏模板中,以显示给定的内容。侧栏也在自定义元框中选择。用户可以使用默认的WYSIWYG编辑器将内容添加到侧栏,这是一个很大的优势。

不是真正的“侧栏。因此,无法再将小部件添加到管理面板中的小部件子页面上。我们必须为小部件分配创建自己的元盒。

  • 修改管理面板中的小部件子页面,以在WordPress中创建/注册自己的侧栏。还可以使用默认的WYSIWYG编辑器创建一个通用小部件。可以很容易地将带有附件的内容添加到小部件并浏览新创建的侧边栏。然后,用户可以在帖子/页面管理屏幕中的自定义元框中选择此侧边栏,其中包含一个下拉字段。要显示侧栏,我们还需要一个通用的侧栏模板。

    结论从我的角度来看,Nr.4应该可以做到这一点。还有其他可能性吗?或者这已经存在于插件中了?

    感谢您的回复

  • 2 个回复
    SO网友:rasjani

    有一个扩展名为“小部件逻辑”。它为管理部分中的每个侧边栏小部件添加了一个字段,您可以在其中添加一段php代码,用于归档您最可能需要的内容。

    这有点笨重,但很有效。例如,您提到对于多语言站点,您仍然可以使用“is\\u page”,因为您还可以为函数传递数组,如下所示:is\\u page(array(94,71,3))。。与逻辑运算符(and/or/not/xor)结合使用,您可以归档任何组合。

    SO网友:Stephan Samuel

    我做了一些定制的东西来处理类似的事情。以下是一些基于我所学内容的建议:

    首先,如果您的要求允许WP 5。x、 看看你是否可以完全避免侧边栏,并给用户古腾堡块。您的大多数编码和管理噩梦都会消失,因为核心已经为您编写了这些东西。一旦你写了一些,它们就不太难写了_options 表格(带update_option()) 并在页面加载时重新阅读。我已经这样做了,它相对简单admin_ajax 管理选项。我的大多数用户从未接触过这些,但它们对我自己的管理和调试来说是非常宝贵的小部件页面看起来会非常混乱(再加上那里有相当多的JS,所以会很滞后)page 但是UI已经存在了。如果只有少数几种不同类型的东西你想要不同,可以考虑在你的主题或子主题中添加一些额外的模板。这将为您节省大量代码、调试和维护dynamic_sidebar() 您可以将其连接到现有的侧栏中,使其行为有所不同。我猜用CPT重写小部件框架会让许多核心开发人员畏缩不前;然而,如果您在WP工作的时间足够长,您可能在某个时候做过类似的事情看看你可以用不同的小部件做些什么,比如上下文感知。get_option(), get_user_meta()$_GET[] 在小部件渲染时可用。如果是i8n,您可能会更好地在自定义小部件中使用位置感知内容,然后在单个侧栏中使用单个上下文感知小部件。我也看到过短代码可以做到这一点,但作为一名开发人员,如果情况允许的话,我通常更喜欢小部件的管理决定论。请记住,小部件和短代码与短代码小部件和小部件短代码并没有太大区别WP_Term 标签显示在CSS类中(分类结构可以通过现有插件很容易地为任何帖子类型启用),因此请考虑这样一个系统,其中每个可能的小部件都按照配置显示在侧栏中,但不适用于每页加载的小部件都会被隐藏,这可能取决于帖子的标记方式。这稍微不太兼容,但如果您的需求中只允许使用现代浏览器,那么这种不兼容就会消失

    结束

    相关推荐

    Problem with widgets

    我使用的主题是3灰色。它已启用小部件。主题中很少有硬编码的小部件。这些小部件不会出现在小部件页面的侧栏中。如果我尝试添加新的小部件,旧的小部件会被删除。这是正常情况吗。或者这里有什么问题吗。