Я возвращаюсь к пользовательскому плагину, который я написал для клиента несколько месяцев назад. Оно использует Твиттер Авраама Уильямса извлекать твиты из своей временной шкалы с почасовыми интервалами, а затем «кэшировать» результаты в базе данных WordPress (чтобы приложение Twitter не вызывалось при каждом посещении страницы).
это было работает отлично, но, кажется, остановился. Теперь меня поражает то, что если я разделю функцию на «необработанную» автономную страницу PHP, она все равно будет работать точно так же, как и раньше, выбрасывая объект твитов в формате JSON. Однако, как только я вставлю его обратно в свой плагин WordPress, даже с идентичный код, API Twitter возвращает:
{ message="Sorry, that page does not exist", code=34}
Я включил пример автономного PHP-файла в сравнении с (практически идентичной) функцией в плагине WordPress в этом пастбине.
Подтвердить: Все get_option()
звонки возвращают правильную информацию относительно ключей, токенов и секретов. Я отладил его до смерти и не могу на всю жизнь увидеть, что происходит. Также стоит отметить, что как автономный файл, так и WordPress работают на одной и той же установке (в данном случае это xhostpp-localhost с PHP 5.4+).
Итак, оказывается, что имя пользователя Twitter, которое я пытался вытащить, на самом деле начиналось с заглавной буквы. T
(а не все имя пользователя в нижнем регистре, как было в моем коде).
Опять я могу определить нет причин для этого, но: когда мой код находился в отдельном файле, вызов API Twitter был, очевидно, без учета регистра, поэтому он работал, даже когда имя пользователя передавалось как все строчные. Как только я вставил его в свой плагин WordPress — работающий в той же среде, — он вернулся, что полностью сбивает с толку code 34
ошибка, потому что имя пользователя, которое я передавал, не начиналось с заглавной буквы T
,
Мораль истории: Проверьте свой случай.
Других решений пока нет …