需要帮助进行复杂的自定义POST类型设置

时间:2015-04-07 作者:Mattaton

我有三种自定义帖子类型:卡通系列、剧集和特写。

现在,我有卡通系列的帖子,设置为插曲和特写帖子的家长。这是我能找出如何将剧集/特别功能与特定卡通系列相关联的唯一方法。我本可以将卡通系列设置为分类法,但卡通系列本身有数据,如描述、图库等。

我现在遇到的问题是重写的复杂性(也是我现在不想讨论的面包屑)。起初,我为剧集设置了一个重写,以便将post parent添加到url中:domain/cartoon-series/<series>/<episode-name>这很管用,但当我添加特殊功能时,我意识到它的重写看起来完全一样,所以Wordpress自然会对此感到困惑。然后,我尝试将post类型名称添加到重写中,以区分这两个CPT:domain/cartoon-series/<series>/episodes/<episode-name>但是,我一定是做错了什么,因为重写没有被正确读取,请使用重写分析器查看它。

所有这些复杂性让我想知道我是否以最好的方式解决了这个问题。因此,我正在寻找更好的方式来看待它的任何建议。

更复杂的一个层次是,特殊功能可能有几种不同类型的内容,如图库、叙述、视频等。因此,我不确定是否应该以某种方式将特殊功能作为分类法或类似的分类法,然后将不同的帖子类型分配给特殊功能分类法。这很复杂!!!:-D

Cartoon Series  
|  |Would have data related to the series, itself (narrative, gallery, etc)  
|---Episodes  
|   |---Episode Synopsis and galleries
|---Special Features
    |---Different types of posts (galleries, narratives, videos)
我唯一想做的另一件事是将卡通系列作为一种分类法,将情节和特殊功能作为系列名称的子术语。然后,也许我可以设置一个CPT来镜像顶级卡通系列术语的名称,以保存分类学术语无法保存的额外数据(这是我从未做过的)<这种方法的一个缺点是,许多用户会输入数据,所有这些张贴位置的选项可能都会变得疯狂。例如,有人可能会将一集放在特殊功能下,因为所有这些术语选项都可以在同一个选择元框中使用。

感谢您的帮助!

1 个回复
SO网友:Marcin

好吧,这很复杂:-)你考虑过使用rewrite endpoints?

我不会尝试将所有内容都塞进url,除非您有特定的需要或要求。

domain/<series>/<episode-name> 直接去看CPT

domain/cartoon-series/<series> - 将进行系列CPT

然后使用“重写端点”为这些URL提供功能:

domain/cartoon-series/<series>/gallery

domain/cartoon-series/<series>/description

您可以添加类似的内容以允许这些(/gallery和/description)端点:

function add_endpoints() {
    add_rewrite_endpoint(\'gallery\', EP_PERMALINK);        
    add_rewrite_endpoint(\'description\', EP_PERMALINK );        
}
add_action( \'init\', \'add_endpoints\', 0);
并且有代码来处理卡通系列的默认CPT模板中的端点。

另一种方法是执行您已经考虑过的操作,即将卡通系列设置为分类法,然后使用重写端点并在类别中解析它们。php文件?

我希望这对你有所帮助。

**另一种选择

不要为卡通系列创建CPT。将其作为一个类别,可用于插曲CPT和专题CPT:

Categories Series Series1 Series2 Series3

Episode CPTSpecial Features CPT

domain/cartoon-series/<series> - 显示类别页面(将列出插曲CPT和特色CPT)以及pulldomain/cartoon-series/<series>/episodes - 类别页面只列出了插曲CPT(其中“插曲”是重写端点)domain/cartoon-series/<series>/features - 列出功能CPT的类别页面(其中“功能”是重写端点)

上述内容将根据类别中的逻辑进行呈现。phpThen公司

情节CPT将映射到/情节/特征CPT映射到/特征/

问题在于如何使其发挥作用:

域/卡通系列//集/-显示集CPT域/卡通系列//功能/-显示功能CPT

当然,你也需要以某种方式获取该系列的信息。

结束

相关推荐