WordPress 4.8: error en taxonomy.php

Siguiendo la recomendación universal que yo mismo extiendo, hace poco actualicé mi WordPress…

El caso es que hoy he descubierto que todas mis entradas comenzaban con un error de PHP:

Warning: Illegal string offset ‘filter’ in wp-includes/taxonomy.php on line 1372

Si bien es cierto que utilizo código propio el caso concreto apunta a un fichero original de la instalación, en concreto el error corresponde a la función sanitize_term cuyo código se puede comprobar en la referencia para desarrolladores.

En concreto el error está en la sentencia del else:

if ( $do_object )
    $term->filter = $context;
else
    $term['filter'] = $context;

En algún caso se llama a la función sanitize_term($term) asignando a $term un contenido que no es ni un objeto ni un array. Como quiera que lo único que se comprueba es si $term es un objeto, la asignación como array sobre una variable que no es un array da error.

Por lo que la solución lógica es comprobar si es un array antes de tratar a $term como un array:

if ( $do_object )
    $term->filter = $context;
elseif ( is_array( $term ) )
    $term['filter'] = $context;

Leave a Reply

Your email address will not be published. Required fields are marked *