以编程方式插入术语不会更新分类管理用户界面

时间:2012-04-19 作者:Tom J Nowell

在我正在从事的一个项目中,我们有一个feed,它正在聚合到WordPress中。正在为提要项分配自定义帖子类型和自定义分类法。

新术语将成功创建并分配给帖子,并显示在前端和帖子编辑屏幕中。However 如果我转到后端的分类法页面,它只列出之前存在的术语。如果我创建一个新术语,例如“Bob”,然后刷新页面,所有术语都会按预期显示。

很明显,有一个缓存或某种类型的瞬态或一个钩子需要被触发,当我以编程方式创建分类术语时,这种情况不会发生,但当我通过后端执行时,这种情况就会发生。

有什么线索吗?

编辑:

代码如下:

$product_group = ! empty( $custom_meta[ \'product_group\' ] ) ? $custom_meta[ \'product_group\' ] : false;
$product_type  = ! empty( $custom_meta[ \'product_type\' ]  ) ? $custom_meta[ \'product_type\' ]  : false;

if ( $product_group && $product_type ) {
    $tax = strtolower( $product_group ) == \'opinion\' ? \'category\' : \'product_categories\';

    if ( ! ( $group = term_exists( $product_group, $tax ) ) )
        $group = wp_insert_term( $product_group, $tax, array( \'description\' => $product_group ) );

    $group_id = ! is_wp_error( $group ) && isset( $group[ \'term_id\' ] ) ? $group[ \'term_id\' ] : 0;

    if ( ! ( $type = term_exists( $product_type, $tax ) ) )
        $type = wp_insert_term( $product_type, $tax, array( \'description\' => $product_type, \'parent\' => $group_id ) );

    $type_id = ! is_wp_error( $type ) && isset( $type[ \'term_id\' ] ) ? $type[ \'term_id\' ] : 0;

    $the_term = get_term_by( \'id\', $type_id, $tax );
    $taxonomies = array( $tax => array( $the_term->slug ) );
}
似乎只有孩子们没有出现

1 个回复
结束

相关推荐