在没有子类别的WordPress中重写博客URL

时间:2012-03-21 01:44:25

标签: wordpress-plugin wordpress

编辑:已移至new post on wordpress.stackexchange.com

挑剔的客户希望他们的URls以非常具体的方式设置。他们使用“日期和名称”预设作为永久链接结构,即/%year%/%monthnum%/%day%/%postname%/。但是,他们希望所有博文都使用/blog/%year%/%monthnum%/%day%/%postname%/。我不能只将其作为永久链接结构输入,因为它还会在其新闻帖子中添加/blog/

一点背景......他们的类别设置如下:

  • 新闻
  • 博客
    • 博客子类别A
    • 博客子类别B
    • 博客子类别C
    • 博客子类别D

假设新闻文章的网址为http://www.example.com/2012/03/20/todays-news。他们不希望URL中有/news/(但如果必须这样,他们可以使用它)。

我们还要说几篇博文的网址是:

http://www.example.com/2012/01/01/new-year
http://www.example.com/2012/02/14/valentines-day
http://www.example.com/2012/02/29/leap-year
http://www.example.com/2012/03/01/march-madness

乍一看,简单的解决方案是将固定链接结构设置为/%category%/%year%/%monthnum%/%day%/%postname%/,然后只处理/ news /在那里发布新闻帖子。但是,如果上述每篇博文分别位于博客子类别A,B,C和D中,那么我们最终会以

结尾
http://www.example.com/blog/blog-subcategory-a/2012/01/01/new-year

而不是

http://www.example.com/blog/2012/01/01/new-year

任何见解都会非常感激,因为我很难过。我想也许add_permastruct可以提供帮助,但Wordpress Codex

中没有文档

我也在创建一个新的分类法,但我不确定这是否会成为我想要的东西。分类法出现在帖子中,但是,我无法弄清楚是否有办法将其添加到URL。这是我注册博客分类的代码:

function ak_blog_init()
{
    // Create a new taxonomy
    register_taxonomy(
        'blog',
        'post',
        array(
            'label'   => __('Blog'),
            'sort'    => true,
            'args'    => array('orderby'=>'term_order'),
            'rewrite' => array('slug'=>'blog')
        )
    );
}

add_action('init', 'ak_blog_init');

0 个答案:

没有答案