我是否可以使用自定义发布类型来创建父/子关系?

时间:2011-02-24 作者:cgranier

我想通过以下方式存储有关电视节目的信息:

系列(系列的一般信息)

--第1集(第1集视频+关于该集的信息)

--第二集(第二集视频+有关该集的信息)

。。。

--第n集

分类法可以用于一些附加信息,例如生产年份、参与者、网络等。

目前,我已经为每个节目设置了一个页面,并为每集设置了常规帖子。我将这些剧集与Organize系列插件链接在一起。

这是否可以仅使用自定义帖子类型?随着网站的发展,这似乎会让事情变得更容易。

谢谢你的帮助。

2 个回复
最合适的回答,由SO网友:Manny Fleurmond 整理而成

我在当前项目中的元盒中使用以下代码:

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>\';
}
此代码输出一个选择框,该框由特定类型的所有帖子的帖子标题和帖子id填充。如果将其放置在子帖子类型的元框中,则只需选择父帖子并进行更新。WordpPress已经在寻找一个名为“parent\\u id”的表单元素来设置帖子的父级,因此除了创建元框之外,不需要其他代码:

add_meta_box(\'parent_series\', \'Series\', \'show_series_metabox\', \'episode\', \'side\', \'high\');  //add a side metabox
function show_series_metabox() {
    parent_select(\'series\');
    echo \'Please select series\';
}
具有讽刺意味的是,我这样做是为了一个类似的情况:我有一个系列的帖子类型,另外两个帖子类型,一个用于剧集,一个用于DVD发行,这两个类型都使用帖子的post\\u parent字段作为父子关系连接到一个系列。

特别感谢@MikeSchinkelcode I modified

SO网友:scribu

是的,可以使用wp\\U posts表中的post\\U parent字段。

不过,您必须编写一个自定义元框来设置关系。

结束

相关推荐