发布页面时插入术语--编辑后避免重复

时间:2016-05-13 作者:matjaeck

因此,我想在发布新页面时,向以新页面命名的自定义分类法动态添加术语。我的问题是,当您编辑页面标题时,另一个术语将添加到分类法中。

此代码段来自this answer, 它用于插入术语。

function add_page_term( $post_ID ) {
$post = get_post( $post_ID );
wp_insert_term( $post->post_title, \'mypages\' );
}
add_action( \'publish_page\', \'add_page_term\' );
到目前为止,我尝试先获取post\\u ID,然后使用pre_insert_term 钩住或用str_replace 但没有成功。有什么想法吗?非常感谢您的帮助。提前感谢!

1 个回复
最合适的回答,由SO网友:N00b 整理而成

我建议post status transitions 仅在满足设置的条件时运行。

Example:

add_action(  \'transition_post_status\',  \'add_awesome_terms\', 10, 3 );

function add_awesome_terms( $new_status, $old_status, $post ) {

    // only run when it\'s a page, new status is publish and old status isn\'t publish
    if ( $post->post_type == \'page\' && $new_status == \'publish\' && $old_status != \'publish\' ) {

        // do whatever you need here, it runs only when your set conditions are met
        wp_insert_term( $post->post_title, \'mypages\' );
    }
}
小奖励:你已经有了一个$post 对象,您可以访问$post 变量。

您可能想添加自己的条件,使其防弹。当前每次新状态为publish 而老年人不是publish. 这完全取决于页面/帖子管理的设置方式。

可能的岗位状态:

  • new – 没有以前的状态时publish – 已发布的帖子或页面pending – 待审核的帖子draft – 处于草稿状态的帖子auto-draft – 新创建的无内容帖子future – 计划在将来发布的帖子private – 未登录的用户不可见inherit – 修订或附件trash – 帖子已被丢弃,请不要忘记使用$post 变量对您有利,您已经拥有了!列出了变量here.

相关推荐

我在相关产品“TAX_QUERY”‘TERMS’值方面遇到问题

我有两种自定义页面类型。第一个是;“产品”;第二个是;附件;。在产品页面上,有“附件”类别;“输入”;罗列立柱。输入对值进行编码,如;06010603等;。这些代码也是产品代码。当我用metabox输入产品代码时,功能会在某些区域启动。如产品表、产品图片等。如何在术语部分打印此代码。提前感谢你们的帮助。工作代码;<?php $article_list = get_post_meta ( get_the_ID(), \'products_article_list\', t