我们可以在另一个自定义帖子下添加自定义帖子吗



我有以下场景。

我有一个自定义的帖子类型"project",下面有必要的自定义分类法和自定义标记。现在的要求是每个"项目"数据都有自己不同的页面(acf与默认页面相同(作为详细页面中的菜单。

所以我正在考虑在帖子类型"project"下添加另一个自定义帖子类型作为"project page",并将其视为WordPress的默认页面。这可能吗?我尝试在另一个帖子类型下搜索自定义帖子类型,但没有成功。我该如何处理这个问题,这样页面的永久链接中也有项目碎片。

欢迎任何帮助/建议。

找到了是否可以在另一个自定义帖子类型下添加自定义帖子类型的答案。这是可能的。注册自定义帖子类型时只需要添加以下代码。

'show_in_menu' => 'edit.php?post_type=project',

关于项目页面permalink以包括项目slug,我从前面手动创建了它(在管理部分没有视图和permalink访问(。在管理部分,我制作了acf"张贴对象",将页面与项目联系起来。为了显示项目页面的详细信息,我做了以下操作。

add_action( 'init', function() {
$url_path   = trim( parse_url( add_query_arg( array() ), PHP_URL_PATH ), '/' );
$count      = count( explode( '/', $url_path ) );
$slug       = end( explode( '/', $url_path ) );
$postdetail = get_page_by_path( $slug, OBJECT, 'project_page' );
if ( isset( $postdetail ) && ! empty( $postdetail ) ) {
set_query_var( 'breadcrumb_id', $postdetail->ID );
$params = array(
'current_id' => $postdetail->ID,
);
$load = locate_template( 'templates/single/project_page.php', true, true, $params );
if ( $load )
exit();
} else {
return;
}
});

到目前为止,这解决了我的问题。仍在寻找最佳选择。

您可以使"project"post类型具有层次结构
然后在子页面上使用父关系。

register_post_type('project', array(
'hierarchical' => true,
'supports' => array('page-attributes'), // show the parent select box on the editor page
... // Your other settings here
))

我不确定父子关系是否要求两个帖子的类型相同。也许你可以尝试两种不同的类型。

这个解决方案至少有你想要得到的嵌套URL。我不确定是否与ACF集成,因为孩子们属于同一个岗位类型。

编辑:既然您提到了ACF,那么您可以使用Relationship字段类型。

最新更新