acf_decode_taxonomy_term()
acf_decode_taxonomy_term
This function will return the taxonomy and term slug for a given value
Хуков нет.
Возвращает
(Массив).
Использование
acf_decode_taxonomy_term( $value );
- $value(обязательный)
- .
Список изменений
| С версии 5.0.0 | Введена. |
Код acf_decode_taxonomy_term() acf decode taxonomy term ACF 6.4.2
function acf_decode_taxonomy_term( $value ) {
// vars
$data = array(
'taxonomy' => '',
'term' => '',
);
// int
if ( is_numeric( $value ) ) {
$data['term'] = $value;
// string
} elseif ( is_string( $value ) ) {
$value = explode( ':', $value );
$data['taxonomy'] = isset( $value[0] ) ? $value[0] : '';
$data['term'] = isset( $value[1] ) ? $value[1] : '';
// error
} else {
return false;
}
// allow for term_id (Used by ACF v4)
if ( is_numeric( $data['term'] ) ) {
// global
global $wpdb;
// find taxonomy
if ( ! $data['taxonomy'] ) {
$data['taxonomy'] = $wpdb->get_var( $wpdb->prepare( "SELECT taxonomy FROM $wpdb->term_taxonomy WHERE term_id = %d LIMIT 1", $data['term'] ) );
}
// find term (may have numeric slug '123')
$term = get_term_by( 'slug', $data['term'], $data['taxonomy'] );
// attempt get term via ID (ACF4 uses ID)
if ( ! $term ) {
$term = get_term( $data['term'], $data['taxonomy'] );
}
// bail early if no term
if ( ! $term ) {
return false;
}
// update
$data['taxonomy'] = $term->taxonomy;
$data['term'] = $term->slug;
}
// return
return $data;
}