可以组合两种自定义帖子类型吗?

时间:2011-02-21 作者:J82

我有一个名册页面,其中包含两个部分。第一部分包含艺术家的图片、简短的bios和网站链接;第二部分包含名册中每位艺术家的组合视频。

与此类似:

roster

通常,我会创建两种不同的帖子类型;一个是“艺术家”,另一个是“艺术家视频”,但我想知道是否有办法将两者结合起来?所以在管理面板中,它看起来像这样:

admin

如果可能的话,我该怎么做呢?或者我是不是想得太多了(就像我经常做的那样),有没有更简单的方法?

2 个回复
SO网友:Manny Fleurmond

这需要一些自定义编码,但有一种方法可以同时保留自定义帖子类型,并将艺术家和视频帖子类型链接在一起。它涉及到使用帖子的post\\u parent属性使它们具有层次结构,而无需将两者结合起来。

我目前正在使用以下代码将一个帖子类型附加到另一个帖子类型:

function parent_select ($parent_type) {
    global $post;
    global $wpdb;
    $query = "SELECT ID, post_title FROM $wpdb->posts WHERE post_type = \'{$parent_type}\' AND post_status = \'publish\' ORDER BY post_title";
    $results = $wpdb->get_results($query, OBJECT);
    echo \'<select name="parent_id" id="parent_id">\';
    echo \'<option value = "">None</option>\';
    foreach ($results as $r) {
        echo \'<option value="\', $r->ID, \'"\', $r->ID == $post->post_parent ? \' selected="selected"\' : \'\', \'>\', $r->post_title, \'</option>\';
    }
    echo \'</select>\';
}
将其添加到视频编辑页面的元框中,并将艺术家类型作为父类型传递。它将创建一个下拉框,列出您拥有的所有艺术家。只需选择一个并更新,该视频现在就会看到您作为家长选择的艺术家。之后,您可以创建一个自定义模板来为任何特定艺术家提取所有视频。

SO网友:wyrfel

我不知道我是否理解正确,但你可以制作一个层次结构的帖子类型,然后根据层次结构中的级别或你添加的一些元值进行多样化。

编辑:换言之,您只需创建一个“ArtistOrVideo”帖子类型,并将其分级。它代表了两者。第一级(post\\u parent=0),您始终将其视为艺术家。第二个级别(post\\u parent指向post\\u parent=0的帖子)始终视为视频。然后,您也可以在元盒回调中对此作出反应,并为post\\u parent=0帖子创建艺术家元盒,为其他帖子创建视频元盒。我很肯定你可以把这个贯穿整个应用程序。

然而,现有的规范替代方案是:你不能创建一个“艺术家”分类法吗?

结束

相关推荐