web-dev-qa-db-ja.com

警告:urlencode()はパラメータ1が文字列、配列指定であることを期待します

私は question をStackOverflowに投稿しました(クロスリンクは申し訳ありません)が、これに対する解決策を見つけようとしている間に、私はこの警告に出会いました:

警告:urlencode()はパラメータ1が文字列で、配列3192の/var/www/.../httpdocs/wp-includes/formatting.phpに与えられた配列であることを期待します。

そしてバックトレースを行うと、それはquery.phpから発生していることがわかります。

wp_includes/query.php 行1710 ... 1712

if ( isset( $t->rewrite['hierarchical'] ) && $t->rewrite['hierarchical'] ) {
     $q[$t->query_var] = wp_basename( $q[$t->query_var] );
}

URLパラメータの1つがカテゴリの配列で、定義済みカテゴリが1つ以上割り当てられているすべての商品(カスタム投稿タイプ)を検索して返そうとしているため、このエラーが発生します。

WordPressがbasenameパラメータの配列でGETを呼び出そうとしているのが私を超えているのはなぜですか。これを私に説明してくれる人はいますか?ありがとうございます。

3
Yanick Rochon

何が起こっているのか正確にはわかりませんが、いくつかのコンテキストの手がかりに基づいて推測できます。その特定の関数はparse_tax_queryです。分類法が階層的であるかどうかを確認しているようです。用語の親/子パスである可能性がある文字列を想定しているため、basenameを使用して実際の用語を取得します-次の行は$term = $q[$t->query_var];です

3
Milo