如何对不同类别使用相同的POST Slug?

时间:2018-09-05 作者:waisie li

我想对不同的类别使用相同的post slug。因为我将有不同的项目使用相同的slug。我已经有了post slugemail. 第二个弹头email 成为email-2, 但我不想那样。

例如,我将有不同的电子邮件项目:

www.example.com/category-one/email
www.example.com/category-two/email
www.example.com/category-three/email

1 个回复
SO网友:Fayaz

使用父子页面(推荐)

如果您不需要类别(&H);帖子,那么这可以通过使用父子页面(而不是帖子)轻松实现。

例如,假设您有三个页面,如:

www.example.com/category-one/
www.example.com/category-two/
www.example.com/category-three/
现在,您可以使用slug为上述页面创建子页面email, e、 g。

www.example.com/category-one/email
www.example.com/category-two/email
www.example.com/category-three/email
这是可能的,因为WordPress认为页面(或任何其他层次结构帖子类型)的整个父子组合slug是唯一的。

当然,所有这些子页面email slug是不同的页面,只是具有相同的URL slug结尾。

使用类别职位组合

Warning: 默认情况下,WordPress不支持此操作(&;有充分的理由。也许现在你有/%category%/%postname%/ 作为您当前的permalink结构,但如果将来需要更改,该怎么办?然后你会有冲突。

此外,由于WordPress内部不支持这一点,因此您可能会遇到其他插件(例如定制permalink插件、SEO插件等)无法预料的问题。

这可以使用wp_unique_post_slug 过滤器挂钩。例如,以下示例插件将允许多次出现email 段塞:

<?php
/*
Plugin Name:  WPSE non-unique post slug
Plugin URI:   https://wordpress.stackexchange.com/a/313422/110572
Description:  WPSE non-unique post slug
Version:      1.0.0
Author:       Fayaz Ahmed
Author URI:   https://www.fayazmiraz.com/
*/

add_filter( \'wp_unique_post_slug\', \'wpse313422_non_unique_post_slug\', 10, 6 );

function wpse313422_non_unique_post_slug( $slug, $post_ID, $post_status, $post_type, $post_parent, $original_slug ) {
    if( $post_type === \'post\' && $original_slug === \'email\' ) {
        // Perform category conflict, permalink structure
        //     and other necessary checks.
        // Don\'t just use it as it is.
        return $original_slug;
    }

    return $slug;
}

结束

相关推荐

我是否可以创建自定义分类,而不创建Slug页面?

我想通过当前帖子的id为我的帖子分配一个值,该变量是什么。最初我想使用自定义的post\\u meta来实现这一点,我认为这是很好的,但是当我使用这个post\\u meta运行查询时,我的页面加载速度会非常慢(基本时间的4-5倍),因为sql查询(我在数据库中为这个post\\u meta创建了自己的索引,但这对我没有帮助)。。。因此,我读到,如果我创建一个自定义分类法,什么具有相同的值,这将很快,就像标记查询一样。但如果这种自定义分类法创建页面(域(.)tld/taxonomy\\u name/tax