我的插件需要在站点前端添加几个屏幕,例如历史概述(http://www.site.com/history?event=X).
首先,我通过编程方式在正文中添加一个带有短代码的页面来实现这一点,并将逻辑放在短代码后面。这很好,因为用户现在可以编辑页面标题、URL和页面模板,从而影响页面在其前端的外观。
然而,一个不必要的副作用是,至少在默认的Wordpress主题中(我现在还没有签入其他主题),我的页面会显示在前端的导航栏中。我不想这样,这既是出于美观的原因,也是因为页面需要一个参数来运行(?event=X),而不是独立的。
所以我的第二个想法是创建一个自定义的post类型。这样我可以告诉它不要显示在导航菜单中(show\\u in\\u nav\\u menus=>false),但现在我失去了用户对其应用页面模板的能力。
所以我的实际问题是“我可以通过编程创建一个不会显示在导航栏中的页面吗?”,但如果我在做一些愚蠢的事情,并且有更好的方法来处理这件事,我会很高兴听到这件事。
最合适的回答,由SO网友:cybmeta 整理而成
在导航栏中自动显示页面不是Wordpress的标准功能。它是主题或插件的一个特定特性。如果您正在使用的主题具有此功能,而您不需要它,则需要创建子主题并修改此行为。
不管怎样,您所描述的使用自定义帖子类型确实更好。想想看。您正在使用页面(帖子类型)嵌入其他类型的内容。Wordpress允许您定义自定义类型的内容,称为自定义帖子类型。使用它,它会好得多:自定义模板、管理UI、searh、查询API、元数据API、对象更改、permlinks、轻松导入和导出,等等。