如果您要查看的代码wp_unique_post_slug - 你会看到。。。
如果其职位类型-attachment 它只会检查ID
和post_name
如果其hierarchical 帖子类型(例如第页)-它将检查post_name
在同一水平上(当然是相同的post_type
)
nav_menu_item 而且hierarchical
post类型,但它不需要任何slug,因此跳过它否则。。。它将检查post_name
如果相同post_type
请看一下我列表中的4项。这是你的案子。WP不在乎您是否拥有与Draft、Pending或AutoDraft状态相同的post\\u类型的slug。。。但是如果you have such a post with post_status Published or Trash
... 在这种情况下,你(对我来说)会得到dash + iterator number
在你的鼻涕虫。
如果您将运行query-可能会看到非Uniq slug帖子的不同帖子状态
SELECT COUNT( * ) AS `total` , `post_name` , CONCAT_WS(\' and \', post_status) as Statuses
FROM `wp_posts`
WHERE `post_type` = \'motogp-2013\'
GROUP BY CONCAT_WS(\' and \', `post_name` ) `post_name`
ORDER BY `total` DESC
LIMIT 0 , 30
不过,如果你没有幸运地发现你想要生成的slug的原因是没有生成。。。您可以对非uniq段塞使用过滤器。。。wp_unique_post_slug
它可以有7个参数。。。($slug、$post\\u ID、$post\\u status、$post\\u type、$post\\u parent、$original\\u slug),您可以使用。。。
add_filter(\'wp_unique_post_slug\', \'se_126293_wp_unique_post_slug\',10,7);
function se_126293_wp_unique_post_slug($slug, $post_ID, $post_status, $post_type, $post_parent, $original_slug){
// do whatever you want with a slug, but whatch out
return $slug;
}
您可以将此代码放置到主题的functions.php
或插件。。。