设置自定义发布类型父级/层次结构

时间:2021-03-12 作者:Arx

我希望将申请职位类型关联为职位类型的子级,用户可以提交与提交的职位相关的申请。最终目标是允许作业作者查看为该作业提交的申请帖子。

我已经使用CPT UI为这两种帖子类型启用了层次结构,但看不到任何选项可以自动将校对帖子类型的父级设置为其提交的作业。我还尝试使用高级自定义字段关系字段,但这只允许用户手动设置父级,而不是自动将校样与父级作业关联。

是否可以将自定义帖子类型与父自定义帖子类型关联,如果可以,如何关联?

非常感谢你。

1 个回复
SO网友:Antti Koskinen

是的,可以将一种类型的帖子设置为另一种类型帖子的子帖子。你只需要确保post_parent 在创建帖子/将帖子插入数据库时,参数将随其他帖子数据(post\\u title等)传递。

例如,如果您有一个用于提交申请的自定义表单,则可以在其中的隐藏字段中添加职位ID。

<form id="yourApplicationForm" method="post">

    <!-- form fields -->

    <input type="hidden" name="job_id" value="<?php echo esc_attr( $job_id ); ?>">

    <!-- submit button -->

</form>
提交表单并将数据传递给表单处理程序时,您可以从$_PSOT 并将其设置为post_parent 价值

function your_form_submission_handler() {

    // code..

    // insert application post to database
    $application_post = wp_insert_post(
        array(
            // other_post_field_keys_and_values,
            \'post_type\' => \'application\',
            \'post_parent\' => absint( $_POST[\'job_id\'] ?? 0 ),
        )
    );

    // code..
    
}
WordPress很乐意接受作业ID为post_parent 甚至,如果ID用于其他类型的帖子。

另一方面,如果您正在为应用程序表单使用一些插件或主题功能,那么想法保持不变,但实现可能需要更多挖掘。

基本上,您仍然可以将作业ID作为隐藏字段添加到表单中,但您需要了解表单的保存方式,以及如何过滤表单数据以将作业ID映射为post_parent 申请职位。

如果表单功能还使用wp_insert_post 最后,要将提交内容保存为帖子,您可以使用wp_insert_post_parentwp_insert_post_data 过滤器设置post_parent 从…起$_POST.

相关推荐

rewrite rules hierarchical

我希望我的WordPress遵循以下规则:/productes/ 包含所有产品的页面/productes/[category]/ 包含该类别所有产品的分类页面/productes/[category]/[subcategory]/ 包含该类别所有产品(与2相同)的分类页面/[productes]/[category]/[product]/ A.single-productes.php 将显示类别产品/[productes]/[category]/[subcategory]/[product]/ A.sin