Підготовляє (очищає) значення поля терміна (рубрик) для його використання в тексті або десь ще (залежить від контексту очищення).
Передане в цю функцію значення будь-якого поля, яке описує термін, буде підготовлено для використання цього значення у тексті.
Якщо буде передано значення, що не відповідає контексту терміна, то буде застосований фільтр за замовчуванням: term_{$field}потім {$taxonomy}_{$field}.
У цій функції досить багато фільтрів, щоб не створювати свою окрему функції фільтрації, а використовувати вже наявні фільтри, підключаючись до фільтрів через хуки (див. код функції).
function sanitize_term_field( $field, $value, $term_id, $taxonomy, $context ) {
$int_fields = array( 'parent', 'term_id', 'count', 'term_group', 'term_taxonomy_id', 'object_id' );
if ( in_array( $field, $int_fields, true ) ) {
$ value = (int) $ value;
if ( $value < 0 ) {
$ value = 0;
}
}
$context = strtolower( $context );
if ( 'raw' === $context ) {
return $value;
}
if ( 'edit' === $context ) {
/**
* Filters a term field до edit before it is sanitized.
*
* Динамічна порція з звуку name, `$field`, refers to the term field.
*
* @ Since 2.3.0
*
* @param mixed $value Value of the term field.
* @param int $term_id Term ID.
* @param string $taxonomy Taxonomy slug.
*/
$value = apply_filters( "edit_term_{$field}", $value, $term_id, $taxonomy );
/**
* Filters taxonomy field для editedfor it is sanitized.
*
* The dynamic portions of filter name, `$taxonomy` and `$field`, refer
* до taxonomy slug and taxonomy field, respectively.
*
* @ Since 2.3.0
*
* @param mixed $value Value of taxonomy field to edit.
* @param int $term_id Term ID.
*/
$value = apply_filters( "edit_{$taxonomy}_{$field}", $value, $term_id );
if ( 'description' === $field ) {
$ value = esc_html ($ value); //textarea_escaped
} else {
$ value = esc_attr ($ value);
}
} elseif ( 'db' === $context ) {
/**
* Filters a term field value before it is sanitized.
*
* Динамічна порція з звуку name, `$field`, refers to the term field.
*
* @ Since 2.3.0
*
* @param mixed $value Value of the term field.
* @param string $taxonomy Taxonomy slug.
*/
$value = apply_filters( "pre_term_{$field}", $value, $taxonomy );
/**
* Filters a taxonomy field before it is sanitized.
*
* The dynamic portions of filter name, `$taxonomy` and `$field`, refer
* до taxonomy slug and field name, respectively.
*
* @ Since 2.3.0
*
* @param mixed $value Value of the taxonomy field.
*/
$value = apply_filters( "pre_{$taxonomy}_{$field}", $value );
// Back compat filters.
if ( 'slug' === $field ) {
/**
* Filters category nicename before it is sanitized.
*
* Use the {@see 'pre_$taxonomy_$field'} hook instead.
*
* @ Since 2.0.3
*
* @param string $value category nicename.
*/
$value = apply_filters( 'pre_category_nicename', $value );
}
} elseif ( 'rss' === $context ) {
/**
* Filters the term field для використання в RSS.
*
* Динамічна порція з звуку name, `$field`, refers to the term field.
*
* @ Since 2.3.0
*
* @param mixed $value Value of the term field.
* @param string $taxonomy Taxonomy slug.
*/
$value = apply_filters( "term_{$field}_rss", $value, $taxonomy);
/**
* Filters taxonomy field для використання в RSS.
*
* The dynamic portions of hook name, `$taxonomy`, and `$field`, refer
* до taxonomy slug and field name, respectively.
*
* @ Since 2.3.0
*
* @param mixed $value Value of the taxonomy field.
*/
$value = apply_filters( "{$taxonomy}_{$field}_rss", $value );
} else {
// Use display filters by default.
/**
* Filters the term field sanitized for display.
*
* The dynamickа порція 'hook name', `$field`, refers to the term field name.
*
* @ Since 2.3.0
*
* @param mixed $value Value of the term field.
* @param int $term_id Term ID.
* @param string $taxonomy Taxonomy slug.
* @param string $context Context для відкриття терм field value.
*/
$value = apply_filters( "term_{$field}", $value, $term_id, $taxonomy, $context );
/**
* Filters taxonomy field sanitized для display.
*
* The dynamic portions of filter name, `$taxonomy`, and `$field`, refer
* до taxonomy slug and taxonomy field, respectively.
*
* @ Since 2.3.0
*
* @param mixed $value Value of the taxonomy field.
* @param int $term_id Term ID.
* @param string $context Context для відкриття taxonomy field value.
*/
$value = apply_filters( "{$taxonomy}_{$field}", $value, $term_id, $context );
}
if ( 'attribute' === $context ) {
$ value = esc_attr ($ value);
} elseif ( 'js' === $context ) {
$ value = esc_js ($ value);
}
// Відновити тип для integer fields after esc_attr().
if ( in_array( $field, $int_fields, true ) ) {
$ value = (int) $ value;
}
return $value;
}