WordPressでURLのgetパラメータに配列を使って処理する機能を追加したら以下の警告が出ました。
意図した動作はするのですが、気持ち悪いのでこの警告を消したいと思って調べましたが、解決方法があまり見つからなかったので書いておきます。
警告が出る原因
この警告の原因は、文字列を前提にしているところに配列が渡してしまっているからです。
1 |
Warning: urlencode() expects parameter 1 to be string, array given in formatting.php on line 5354 |
解決方法
以下のコードをfunctions.phpに貼り付ければOKです。
パラメータが配列だったら文字列に変換しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
/*------------------------------------------- 以下のワーニング回避:URLパラメータが配列だと怒られるので、文字列に変換 Warning: urlencode() expects parameter 1 to be string, array given ---------------------------------------------*/ function my_query_string($q) { foreach (get_taxonomies(array(), 'objects') as $taxonomy => $t) { if ($t->query_var && !empty($q[$t->query_var])) { if (is_array($q[$t->query_var])) { $q[$t->query_var] = implode(',', $q[$t->query_var]); } } } return $q; } add_filter('request', 'my_query_string', 1); |
参考URL
https://stackoverflow.com/questions/54407997/wordpress-warning-urlencode-expects-parameter-1-to-be-string-array-given-i