Add_filter(get_terms) ha dejado de funcionar con la actualización a 4.7
-
Buenos días,
Tengo un filtro add_filter(get_terms) y al actualizar la versión del wp a la 4.7 ha dejado de funcionar correctamente. Explico mi caso:
Tengo en mi web creados unos usuarios y cada usuario puede ver todos los proyectos pero solo puede filtrar y crear proyectos de su categoría(custom post type). En ese custom post type, genero una columna para mostrar la categoría a la que pertenece el proyecto.
Al actualizar la versión del wp a la 4.7, la columna de la categoría me la devuelve vacía, empty array. Pongo a continuación mi código, a ver si me podéis ayudar.Functions.php
function get_terms_filter( $terms, $taxonomies, $args ) { global $wpdb, $current_user; get_currentuserinfo(); if ( ! is_array($terms) && count($terms) < 1 || $current_user->user_login == 'admin' || ! is_admin() ) return $terms; $filtered_terms = array(); foreach ( $terms as $term ) { if ( $term->slug == $current_user->user_firstname ) { $filtered_terms[] = $term; $padre = $term->term_id; } } foreach ( $terms as $term ) { if ( $term->parent == $padre) { $filtered_terms[] = $term; $subpadre = $term->term_id; foreach ( $terms as $term ) { if ( $term->parent == $subpadre ) { $filtered_terms[] = $term; } } } } return $filtered_terms; } add_filter( 'get_terms', 'get_terms_filter', 10, 3 );
En esta función lo que hago es comprobar el usuario y basándose en su firstname hago el filtro de la categoría, y después compruebo sus hijos para que también me deje filtrar o crear proyectos con dichos hijos, a no ser que seas admin que tienes todos los permisos.
taxonomy_project.php
case 'proyecto_category': if ( $category_list = get_the_term_list( $post_id, 'categoria_proyectos', '', ', ', '' ) ) { if ( is_admin() ) { $terms = get_the_terms( $post_id, 'categoria_proyectos' ); foreach ( $terms as $term) { $term_padre = $term->parent; } $term_father = get_term_by( 'id', $term_padre, 'categoria_proyectos' ); echo qtranxf_use( 'es', $term_father->name, false ) . ' - ' . qtranxf_use( 'es', $category_list, false ); } else { echo qtranxf_use( 'es', $category_list, false ); } } else { echo __( 'None' ); } break;
En esta función hago un switch para comprobar en que columna esta, y si es la de categorías me muestre la categoría hija con su categoría padre, y aqui es donde me muestra array vacio.
He estado mirando por internet y he visto que tras actualizar a la 4.7 mucha gente ha tenido problemas con sus filtros de get_terms, pero no doy con la solucion.
Muchas gracias por la ayudaUn saludo
- El debate ‘Add_filter(get_terms) ha dejado de funcionar con la actualización a 4.7’ está cerrado a nuevas respuestas.