WordPress:插入一个定制POST类型实例作为定制分类的选项

时间:2015-01-20 作者:Ema.jar

我正在尝试将自定义帖子类型连接到其他自定义帖子类型中定义的分类法。

我给你举个例子。我有一个自定义的post类型课程,我使用此post类型为大学创建一个类,因此在该post类型中,我将有一些自定义字段(teacher、lessment schedule ecc ecc)和一个名为teacher的分类法。

教师是我用来代表在我的大学工作的教师的另一种自定义职位类型。

现在,我想在教师实例和课程之间创建一个链接,因此,在创建新课程时,我将拥有该大学所有教师的列表,我可以从该列表中选择一名(或多名)。

如何做到这一点,我应该在注册分类法教师时定义此教师列表吗?你能给我一些代码片段来创建这种关联吗?

IMPORTANT: 我正在寻找代码答案,我不需要插件,我想学习如何创建代码来实现这一点。

提前谢谢。

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

好的,所以我觉得很大方,我会补充另一个答案:)

此代码将在每次发布帖子时运行created or updated, 它将添加term 到您的teacher 名称与文章标题相同的分类法。

add_action(\'save_post\', \'my_create_teacher_term_from_post\');
function my_project_updated_send_email($post_id){

    /** Ensure that this is not a revision */
    if(wp_is_post_revision($post_id))
        return;
    
    /** Get the name of the teacher that has been added/updated */
    $post_title = get_the_title(post_id);
    
    /** Check to see if a term with the same name as the teacher exists... */
    if(!term_exists($post_title, \'teacher\')) :  // It does not...
    
        /** Insert the new term */
        wp_insert_term($post_title, \'teacher\');
        
    endif;
    
}
Note - 如果只希望在创建帖子而不是更新帖子时执行此操作,请替换save_post 钩住wp_insert_post.

额外阅读WordPress操作挂钩-http://codex.wordpress.org/Plugin_API/Action_Reference

这些将对你的未来至关重要,我完全鼓励你深入核心,看看哪些钩子是可用的——只是要小心!

save_post 行动挂钩-http://codex.wordpress.org/Plugin_API/Action_Reference/save_post

在上面的示例中,每次创建/更新帖子时都会调用此挂钩。

wp_insert_post 行动挂钩-http://codex.wordpress.org/Plugin_API/Action_Reference/wp_insert_post

如果愿意,您可以使用这个钩子,它只在更新帖子时调用,而不是在创建帖子时调用。如果你需要同时使用这个钩子和save_post hook,注意这个叫做after save_post.

term_exists 功能-http://codex.wordpress.org/Function_Reference/term_exists

这就是您将如何查看名称与您刚才添加的教师头衔匹配的术语是否已经存在。

wp_insert_term 功能-http://codex.wordpress.org/Function_Reference/wp_insert_term

最后,这就是你如何实际创建一个术语的程序。

SO网友:David Gard

我建议你看看Posts 2 Posts 插件。

此插件允许您在任何类型的帖子之间创建链接。例如-

p2p_register_connection_type(array(
    \'name\' => \'courses_to_teachers\',
    \'from\' => \'course\',
    \'to\' => \'teacher\'
));
在编辑任何类型的帖子时,您都会有一个额外的框-https://wordpress.org/plugins/posts-to-posts/screenshots/

因此,如果要添加/编辑课程,可以将其链接到多个教师,反之亦然

我在过去使用过这个,虽然一开始可能有点复杂,但有很好的支持,我一直发现作者非常擅长回答通过WP支持论坛发布的问题。

作者Scribu拥有自己的与插件相关的网站,其中充满了示例和描述-http://scribu.net/wordpress/posts-to-posts/

WP论坛提供了大量支持-https://wordpress.org/support/plugin/posts-to-posts

结束

相关推荐