即使具有相同名称的其他帖子属于单独的帖子类型,也添加插件

时间:2013-12-12 作者:Joshc

这很烦人,正因为如此,我把他们的帖子类型分开了。

现在,我有两种帖子类型:

  1. motogp-2013
  2. motogp-2014
在我的帖子类型中motogp-2013 我参加了一个名为“法国大奖赛”的活动,后来成为了“法国大奖赛”的永久赛事。

我现在在motogp-2014 帖子类型和我添加了一个与“Grand-Prix de-France”同名的帖子,这个帖子变成了“Grand-Prix-de-France-2”作为永久链接。

尽管它们是完全独立的帖子类型,但它们在永久链接后添加了一个2。

为什么会这样?它能被阻止吗?

1 个回复
SO网友:Oleg Butuzov

如果您要查看的代码wp_unique_post_slug - 你会看到。。。

如果其职位类型-attachment 它只会检查IDpost_name hierarchical 帖子类型(例如第页)-它将检查post_name 在同一水平上(当然是相同的post_type)

  • nav_menu_item 而且hierarchical post类型,但它不需要任何slug,因此跳过它post_name 如果相同post_type

    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 或插件。。。

  • 结束

    相关推荐

    Subpages Permalinks Issues

    我的网站看起来像:Page-1 (page.php)。。。Subpage-1 (custom-collection.php; 自定义帖子类型)。。。。。。Filtering Output-Post (custom-collection-single.php)当我使用打开过滤输出帖子时/%postname% 对于permalinks,我得到404错误页。一些代码:custom-collection.php<?php $args = array( \'post_type\' => \'weine\