覆盖分类和自定义帖子类型

时间:2015-04-02 作者:Web Dev

我的主题附带了一个自定义的分类法帖子类型。

我想重命名原始文件并用另一个不同的名称复制它。

我试着在函数中找到所有相关的东西。php并将其复制到子主题,假设它将覆盖父主题。

刷新站点后,它变为空白。

有什么想法吗?

我应该复制整个函数吗。php并在我的子主题中使用它。或者是否可以覆盖?

或者它破坏了模板(即使我不在相关页面上),试图调用我更改的模板?

提前谢谢你。我知道这可能真的很简单,我只是对WP还不太了解。

更新-------------

真正的问题是我为什么要这样做。我得到了这个模板,它有一个实践领域帖子/分类类型。但只有一个!我需要搜索引擎优化的目的二。每个城市一个。所以我想把原来的城市重新命名为一个城市,然后把整个城市复制到另一个城市。

下面是我从函数中获得的相关代码。php

http://www.codeshare.io/g2HBx

我在代码中添加了Dallas/Dallas everywhere。

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

所以你有三个问题

问题1,自定义分类法帖子类型您的第一个问题是对什么是分类法和帖子类型的误解。没有自定义分类法帖子类型。分类法和帖子类型是两种不同的东西。

帖子类型是特定类型的帖子/内容片段。E、 g.帖子、页面、附件等

分类法是对特定类型的帖子进行分组/分类的方法,例如颜色、大小、位置

问题2,覆盖主题和子主题,子主题的工作方式与您想象的不同,也不一样functions.php. 是的,如果父主题模板存在,则加载子主题模板,而不是父主题模板,但这是一个模板化的东西,而且只是一个模板化的东西。

functions.php 是一个可以放置代码并使用WordPress API的地方。插件也是一个可以放置代码和使用WordPress API的地方。两者功能相同,只是加载时间略有不同。

所以一个主题functions.php 不是特殊的,它不是模板,也没有被子主题覆盖

法典明确指出:

与风格不同。css,功能。子主题的php不会覆盖父主题的对应主题。相反,它是loaded in addition to the parent’s functions.php. (具体来说,它是在父文件之前加载的。)

所以当你打电话的时候register_post_type, 您没有覆盖父主题,父主题尚未加载!如果父主题在其functions.php, 您需要将一个函数附加到稍后发生的挂钩上,这将撤消父主题所做的操作。WordPress无法跟踪父主题中发生了什么和没有发生什么,以便您可以神奇地将其释放,这是不现实的,尤其是当您考虑可能已添加的操作事件和挂钩时。

问题3,数据你有一个帖子类型,你有一个dallas_practice_area_letter 分类学您需要按城市对所有这些进行分类(我假设达拉斯的所有实践都在达拉斯?)您的解决方案是在每个城市的新名称下创建一个全新的帖子类型和分类法。

这不会扩展,而是注册一个名为dallas_practice_area_city, 并用它来标记每个机构在特定的城市。这样一来,您就不需要每次添加新的城市或地区时都使用新的帖子类型,从而避免了处理查询的巨大痛苦,并且完全避免了将实践输入错误的城市帖子类型和必须移动的问题。

结束

相关推荐