J'ai posté une question sur StackOverflow (désolé pour le lien croisé) et, tandis que je m'efforçais de trouver une solution à ce problème, je suis tombé sur cet avertissement:
Attention: urlencode () s'attend à ce que le paramètre 1 soit une chaîne, tableau donné dans /var/www/.../httpdocs/wp-includes/formatting.php à la ligne 3192
Et en faisant une trace, je trouve que cela provient de query.php
:
wp_includes/query.php , lignes 1710 à 1712
if ( isset( $t->rewrite['hierarchical'] ) && $t->rewrite['hierarchical'] ) {
$q[$t->query_var] = wp_basename( $q[$t->query_var] );
}
Maintenant, j'obtiens cette erreur, car l'un de mes paramètres d'URL est un tableau de catégories, dans lequel j'essaie de rechercher et de renvoyer tous les produits (type de publication personnalisé) auxquels une ou plusieurs des catégories définies ont été attribuées.
Pourquoi WordPress essaie-t-il d'appeler basename
sur un tableau de GET
paramètre me dépasse. Quelqu'un veut-il m'expliquer cela? Merci!
Je ne sais pas exactement ce qui se passe, mais je peux deviner à partir de quelques indices de contexte. Cette fonction particulière est parse_tax_query
. Il semble vérifier si la taxonomie est hiérarchique, je suppose qu'elle attend une chaîne qui pourrait éventuellement être un chemin de termes parent/enfant. Il utilise donc basename pour obtenir le terme demandé - la ligne suivante est $term = $q[$t->query_var];