如何使用此固定链接结构:POST_TYPE/POSTNAME/CUSTOM_INTERNAL_PAGE

时间:2017-01-08 作者:daniloimparato

假设我有一个名为City的自定义帖子类型,其中包含自定义相关元。

以下各项工作正常:

mysite.com/city/new-york/
然而,我希望有一个“内部”页面,以以下方式列出与该帖子相关的内容:

mysite.com/city/new-york/stores
在里面我会询问

post_type=\'stores\',
category=\'new-york\'
如果一个编辑器添加了另一个城市,它应该不需要额外的编码。

然后希望有帖子链接为:

mysite.com/city/new-york/stores/apple
我已经找了一段时间了,但仍然没有找到答案。也许我走错了路。

据我所知,我的网站。com/city/newyork不能是自定义的分类法,因为我需要它是一个功能齐全的页面,带有元框和特色图片。

1 个回复
SO网友:Maqk

注册您的taxonomy 首先,设置参数slug并将规则重写为slug,即city

将您的帖子类型注册到slug 并确保设置has_archive 分类的参数。

现在添加filterpost_type_link 让商店展示个人的permalink。

register_post_type(
    \'city\',
    array(
        \'rewrite\' => array( \'slug\' => \'city/%stores%\', \'with_front\' => false ),
       \'has_archive\' => \'city\',
       // additional args
    )
);


register_taxonomy(
  \'stores\',
  \'city\',
   array(
    \'rewrite\' => array( \'slug\' => \'city\', \'with_front\' => false ),
    // your other args...
)
);

function yourprefix_store_permalinks( $post_link, $post ){
  if ( is_object( $post ) && $post->post_type == \'city\' ){
      $terms = wp_get_object_terms( $post->ID, \'stores\' );
      if( $terms ){
          return str_replace( \'%stores%\' , $terms[0]->slug , $post_link );
      }
  }
  return $post_link;
}
add_filter( \'post_type_link\', \'yourprefix_store_permalinks\', 1, 2 );
在此处使用内置工具生成WP内容GenrateWP

希望这就是你要找的。如果不是,你可以阅读类似的文章https://wordpress.stackexchange.com/questions/199456/custom-taxonomy-post-slug-permalink

相关推荐

Problem with permalinks

我已经更改了类别的基本名称,现在它是“博客”,工作正常。但当我通过/blog/%category%/%postname%/更改结构时。显示404。如果我删除结构中的blog,它会再次工作,但我想使用blog word。问题出在哪里?非常感谢。