Save Filter for Taxonomies

时间:2016-06-21 作者:Christoph Daum

我想摆脱不需要的HTML,主要是在从其他来源(如其他页面或Word)复制文本时由我的编辑器发布的

因此我使用

add_filter( \'content_save_pre\' , \'my_function\', 10, 1 );
对于帖子中的内容。

我想对分类法/术语及其描述进行同样的操作,但我在WordPress文档中没有找到任何过滤器,也没有在代码中找到任何内容。

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

例如,有以下动态sanitize_term_fields() 过滤器:

  • edit_term_{$field} 筛选编辑上下文pre_term_{$field} 筛选数据库上下文term_{$field}_rss 筛选rss上下文term_{$field} 过滤器(默认)
以及特定于分类的过滤器:

  • edit_{$taxonomy}_{$field} 筛选编辑上下文pre_{$taxonomy}_{$field} 筛选数据库上下文{$taxonomy}_{$field}_rss 筛选rss上下文{$taxonomy}_{$field} 筛选(默认)
如果上下文为原始,则不应用上述筛选。

db上下文用于wp_insert_term()wp_update_term():

$args = sanitize_term($args, $taxonomy, \'db\');
还有pre_insert_term 过滤器接线wp_insert_term().

/**
 * Filters a term before it is sanitized and inserted into the database.
 *
 * @since 3.0.0
 *
 * @param string $term     The term to add or update.
 * @param string $taxonomy Taxonomy slug.
 */
 $term = apply_filters( \'pre_insert_term\', $term, $taxonomy );
以下是post标签分类法中术语描述的简单演示示例:

编辑上下文:

add_filter( \'edit_post_tag_description\', \'wp_strip_all_tags\' );
db上下文:

add_filter( \'pre_post_tag_description\', \'wp_strip_all_tags\' );
您可能希望根据自己的需要进一步测试和限制这一点。

注意:最好是在前端输出术语描述的地方去掉它,这样就不会干扰后端的用户输入