如何防止在CREATE_TERM挂钩上创建术语?

时间:2014-06-13 作者:Asaf

我有一个函数正在处理“create\\u term”挂钩,我试图阻止在某些情况下创建该术语,我已经尝试了

return false;
但这并没有起到多大作用,我如何防止这个术语被创建?

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

create_term 正如你在inline docs in code

创建新术语后,在清除术语缓存之前立即激发

因此,您无法在事件已经发生之后阻止事件。

要防止插入术语,可以使用\'pre_insert_term\' filter hook 并返回WP_Error A.0 或空字符串。

示例:

add_filter( \'pre_insert_term\', \'prevent_add_term\', 20, 2 );

function prevent_add_term( $term, $taxonomy ) {
  if ( $term === \'i-am-a-bad-term\' ) {
    $term = new WP_Error( \'invalid_term\', \'Term you tried to add sucks\' );
  }
  return $term;
}

SO网友:vancoder

create_term 仅在插入术语后激发,因此返回false将不会起任何作用。

pre_insert_term 似乎是要使用的挂钩,如中所述codex here. 然而,特定的钩子似乎没有文档记录,因此您可能需要稍微使用它。

结束

相关推荐

Adding custom Bulk Actions

我一直在寻找将自定义批量操作添加到类别页面的方法。他们中的大多数人说,不可能用干净的方式来做这件事,因为这件事没有挂钩。大多数解决方案包括在客户端使用JS通过DOM操作添加选项。虽然这是可行的,但它仍然是一个相当丑陋的解决方案。我读过的大多数文章都是2年前的,所以我一直在想,从那时起到现在,这个问题已经添加了一个新的挂钩或解决方案,以便对这个问题有一个更及时的解决方案。