针对定制内容使用Customizer API与定制Meta Box

时间:2020-03-04 作者:Black Iso

我刚刚开始潜入wordpress的世界,我正在尝试向网站添加自定义内容,我查看了Customizer API和Meta box,他们似乎都能够添加我想要的自定义内容,但我不知道哪一个适合。我正在尝试将服务列表添加到我创建的服务页面中。

2 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

都不是

这两个都没有真正意义

为什么不是Metabox/Post Meta

您所描述的不是页面的属性,因此它与元框中显示的post meta没有任何意义。

此外:

您无法直接链接到post meta,将post meta添加到站点搜索很困难,搜索速度会降低100倍,如果您做到了这一点,用户将看不到他们想要的服务,他们只会看到通用服务页面。您必须编写所有代码来存储和保存它,然后重新编写以显示它。插件可以让它变得更简单,但这仍然是一件痛苦的事,只有你的主题才能显示数据,新块编辑器的元盒是一种传统的meh。现在一切都是关于自定义块和侧栏面板的,为什么不在自定义程序中添加控件呢它也不是一个站点范围的控件,用于自定义站点的行为和外观,因此它不在自定义程序中!此外:

那些被存储为选项和主题mod,因此它不会随着服务列表的变长而扩展。块编辑器的新版本引入了完整的站点编辑界面,取代了定制器。要为其开发并不容易,您所描述的就是内容因此,您有两个选项,这取决于您的服务的深度。

页面内容

如果您实际上只是在一个页面上列出所有内容,为什么不让一个服务页面列出它们呢?您可以使用列块在左侧创建经典图像,在右侧创建文本,如果需要整个部分,可以使用封面块,甚至可以创建自己的块!

但是,如果您希望能够链接到特定的服务,或者有一个服务的整个页面,那么下一个选项更适合

服务自定义帖子类型使用register_post_type 注册service post类型。你会得到很多免费的东西(打电话时可以关掉register_post_type 也是:

您将获得一个归档文件,可在中列出服务/services (可配置)免费模板(single-service.phparchive-service.php 有人吗?)show_in_rest 是的)

  • RSS源yoursite.com/services/gardening? )yoursite.com/services/county/derbyshire?

    最重要的是,如果你把注册码放在插件中,服务帖子类型将适用于每个主题!

  • SO网友:RiddleMeThis

    正如您所提到的,您可能会使用其中任何一种。

    在你的情况下,我可能倾向于使用元框。自定义程序与页面和帖子分开,这意味着您必须进入“外观”>“自定义”来编辑列表。使用元框时,可以将其直接显示在页面的编辑屏幕上。

    这两者之间显然有更多的区别,但这将是我的主要区别。您可以阅读有关自定义程序的更多信息here 和元框here.

    相关推荐

    修改CPT上的发布Metabox位置

    我一直在努力想如何正确地做到这一点,但还没有找到解决办法。我有一个带ACF字段的CPT。我不能使用前端表单,因为我正在跨多个子网站同步CPT,所以需要使用后端表单。我已经设置好了,发布表单默认为一列,但我无法将发布元框移动到表单底部。。。它位于帖子标题字段下方。这似乎很愚蠢。S你能提供的任何帮助都是巨大的!谢谢