需要有关具有层次关系的自定义帖子类型的固定链接重写的帮助

时间:2017-10-19 作者:heyjohnsexton

我正在一个电视网站上工作,该网站有几个独立但相关的自定义帖子类型(如连续剧、剧集、视频)。

这些帖子类型之间存在层次关系——剧集属于系列,视频可以属于系列和/或剧集。这些关系是通过子条目上的元键设置的,该元键标识父条目。

从结构上看,这似乎还可以,但我对permalinks有问题。

默认情况下,WordPress显示URL如下:

Series Archive and Single Entry (OK):

域/系列/

域/系列/系列名称/

Individual Episode (Not OK):

/域/集/集名称/

有了这个permalink,不清楚这一集与哪个系列有关。在某些情况下,如果剧集名称相同(例如“Pilot”,则会自动生成名称,如“Pilot-2”和“Pilot-3”。

Desired URL structure for individual episode (or video)

/域/系列/系列名称/集/集名称/

/域/系列/系列名称/视频/视频名称/

我试着根据我在网上找到的一些博客文章拼凑出一些代码,但没有成功。以下是我当前正在尝试的代码:

function custom_rewrites() {
  global $wp_rewrite;

  add_rewrite_tag(\'%episodename%\', \'([^&]+)\', \'episodes=\');

  add_permastruct(\'episodes\', \'/series/series_placeholder/episodes/%episodename%\', false);

  add_rewrite_rule(\'^episodes/([^/]*)/([^/]*)/?\',\'index.php?series=$matches[1]&episodes=$matches[2]\',\'top\');
}

add_action( \'init\', \'custom_rewrites\', 10, 0 );
我觉得我有点接近了,但我显然错过了一些东西(或一些东西)。

任何帮助都将不胜感激!

1 个回复
SO网友:Misha Rudrastyh

我认为最好与分类学术语联系起来。由于您可以使用ACF/其他插件/代码向术语中添加任何自定义字段,因此可以将术语与图像、完整描述等一起使用。

我也有类似的任务,本教程应该会有所帮助https://rudrastyh.com/wordpress/taxonomy-slug-in-post-type-url.html. 是的,我知道没有层次结构,但我想向您展示另一个执行任务的原则。

实际上,要添加层次结构,只需从代码的这一部分对术语进行重新排序:

$terms = wp_get_object_terms( $post->ID, $tax_name );
并将其添加到此部分:

$permalink = str_replace( $post_type_slug, $terms[0]->slug . \'/\' . $terms[0]->slug, $permalink );
如果你有一个特定的问题,可以在这里或那里发表评论。我会尽力帮助你的。

结束

相关推荐

Change Taxonomy Permalinks

我有自定义帖子,我创建了一个显示所有自定义帖子的页面。示例:www.example.com/archive-page我想知道是否可以更改与此自定义帖子相关的类别和标签的永久链接。现在我有:www.example.com/my-custom-post-type-cats/my-category-1www.example.com/my-custom-post-type-tags/my-tag-1</我想要这样的东西:www.example.com/archive-page?category=1www.e