自定义POST类型辅助工具/页面辅助工具冲突-是否阻止在保存页面时使用保留的辅助工具?

时间:2011-10-19 作者:hhins

在我的主题中,我有一个自定义的帖子类型的公文包(slug公文包),除了一件事之外,其他都很好。当人们创建一个包含大量公文包的页面时,例如:示例。com/portfolio,主题认为我想使用自定义的post-type归档页面,而不是在编辑器中创建的页面。

我是否可以在保存页面时以某种方式“保留”slug公文包,以确保它永远不会被使用,或者重命名为公文包页面?

我的项目使用本教程中概述的方法,以下是我所指的冲突:

“除了必须修补代码之外,还有一个问题是,你不能将你的页面slug与你的自定义帖子类型slug调用相同的东西。把你的自定义帖子类型slug想象成一个保留关键字;但是,只要你的页面slug与你的自定义帖子类型slug不同,你就可以将你的页面标题命名为相同的名称。”-http://wp.tutsplus.com/tutorials/custom-post-type-pagination-chaining-method/

谢谢你的建议!

3 个回复
SO网友:Rachel Carden

当WordPress检查slug时,您可以使用以下2个过滤器,并且可以在wp includes/post中的函数wp\\u unique\\u post\\u slug()中找到这些过滤器。php文件。

有两个过滤器,一个用于分级帖子,另一个用于非分级帖子。层次过滤器为帖子父级提供ID,因此如果$post\\u父级为0,您就知道这是一篇“基本”帖子。

如果要将特定的post类型添加到逻辑中,过滤器也会传递$post\\u类型。

通过返回“true”,您就告诉WordPress这个slug不好,所以WordPress会添加一个后缀,就像您试图向我们提供一个已经被使用的帖子名/slug一样。

add_filter( \'wp_unique_post_slug_is_bad_hierarchical_slug\', \'portfolio_is_bad_hierarchical_slug\', 10, 4 );
function portfolio_is_bad_hierarchical_slug( $is_bad_hierarchical_slug, $slug, $post_type, $post_parent ) {
    if ( !$post_parent && $slug == \'portfolio\' )
        return true;
    return $is_bad_hierarchical_slug;
}

add_filter( \'wp_unique_post_slug_is_bad_flat_slug\', \'portfolio_is_bad_flat_slug\', 10, 3 );
function portfolio_is_bad_flat_slug( $is_bad_flat_slug, $slug, $post_type ) {
    if ( $slug == \'portfolio\' )
        return true;
    return $is_bad_flat_slug;
}

SO网友:Max Yudin

创建一个包含大量“portfolio”的页面,并将其设置为“Private”。当保留slug以备将来使用时,它将对公众隐藏。

SO网友:Ross

在调查分页问题时遇到了这个问题。我们有一个新闻主页(slug“News”),分页失败。。。尝试访问/新闻/页面/2/总是导致“404-未找到”。

问题是,我们的新闻自定义类型也被赋予了slug“News”。通过更改后者(例如改为“news\\u archive”),问题得到了解决。这使原始新闻URL引用保持不变。更改新闻主页的slug也起到了作用,但所有URL都会包含更改后的slug。

结束

相关推荐

Pages not appearing?

我已经创建了6种不同的自定义帖子类型,每种类型都有自己的存档。我还创建了一个与自定义帖子类型同名的页面,并为每个页面创建了一个名为“About”的子页面。出于某种原因,我只能访问一个自定义帖子类型下的About页面,尽管我已经检查了代码是否正确functions.php 对所有人来说都是一样的。现场正在测试中。isthispavilion。com;每个的代码是:add_action(\"init\", \"zac_init\"); function zac_init() {