算了吧!
这是一个非常恶劣的黑客攻击,但我过滤了原始的WP“查询”,这样它就可以支持在一个URL中嵌套在一起的多个帖子类型。
当您使用URL加载wordpress时,如/page/subpage/custom-post-name here/它将运行以下SQL来检查URL是否有效:
SELECT ID, post_name, post_parent, post_type FROM wp_posts WHERE post_name IN (\'page\',\'subpage\',\'custom-post-name-here\') AND (post_type = \'wiki_page\' OR post_type = \'attachment\')
当然,此查询不会返回任何结果。所以我们稍微修改了一下(讨厌!)因此,它将扩展对页面和自定义帖子类型的搜索:
SELECT ID, post_name, post_parent, post_type FROM wp_posts WHERE post_name IN (\'page\',\'subpage\',\'custom-post-name-here\') AND (post_type = \'wiki_page\' post_type = \'page\' OR post_type = \'attachment\')
这里还有一些其他内容可以从自定义帖子类型中删除“slug”要求(很可能做得更好,仍在学习WP重写!)
完整代码:https://gist.github.com/dtbaker/5311512
实例:(“support”是一个页面,“documentation wiki”是“support”的子级,“change request”是一个自定义的“wiki”帖子,也是“documentation wiki”的子级):http://ultimateclientmanager.com/support/documentation-wiki/change-request/
如果任何人都能得到相同的URL结构、菜单突出显示和永久链接生成,而不必对WP查询进行讨厌的过滤,我会给他们买一杯(或三杯)啤酒。
干杯,戴夫