以下2个过滤器可让您在WordPress检查段塞时将其插入,并在wp-includes / post.php文件的wp_unique_post_slug()函数中找到它们。
有2个过滤器,一个用于分层帖子,一个用于非分层帖子。分层过滤器提供了父帖子的ID,因此,如果$ post_parent为0,则说明这是一个“基本”帖子。
如果要向逻辑中添加特定的帖子类型,则过滤器还会传递$ post_type。
通过返回“ true”,您是在告诉WordPress此段代码不好,因此WordPress会添加一个后缀,就像您尝试向我们发送已使用的帖子名称/段代码一样。
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;
}