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