Цель 'replace_invalid_with_pct_encoding' - экранировать все недопустимые символы в строке запроса.
, поэтому простое удаление может быть не самым безопасным вариантом. С тех пор недопустимые символы в ссылках, которые поступают через записи rss, также больше не экранируются. И это, вероятно, не то, что вы хотите.
Проблема, с которой вы столкнулись, связана не с вопросительным знаком, а с наличием символов «=» и «&» в вашем URL.
У меня была та же проблема, и я добавил эти два символа как «действительные» символы следующим образом:
$ this-> query = $ this-> replace_invalid_with_pct_encoding ($ query,
'! ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 -._ ~ $ \' () * +,;: @ / = & ');