Проблема с JSON в WordPress 3.0

13 нояб. 2010 г., 17:08:11
Просмотры: 303
Голосов: 2

Я использую плагин Media Finder, который отлично работал в WordPress 2.9, но после обновления до WordPress 3.0 библиотека json sans eval, которую использует плагин, перестала работать.

Не уверен, какие изменения были внесены в ядро WordPress при обновлении с 2.9 до 3.0 в части работы с JSON.

Вот скриншот того, что выводит Firebug в Firefox — JSON фактически парсится, но не отображается. (Media Finder позволяет искать видео через медиабиблиотеку в записях)

Поскольку json sans eval не проходит валидацию, возможно WordPress 3.0 его не поддерживает.

Вот ссылка на плагин:

http://wordpress.org/extend/plugins/media-finder/

Вот скриншот ошибки в плагине:

https://i.sstatic.net/3jZVa.jpg

Любая помощь будет спасением. Или хотя бы подсказка, как конвертировать код с json sans eval на json2.js, который теперь встроен в WordPress.

Код, который нужно конвертировать на json2, это строка:

xhr = $.post(ajaxurl, params, function(data) {
data = jsonParse(data);
0
Все ответы на вопрос 1
3

Когда я закомментировал строку:

@header('Content-type: application/json; charset=UTF-8');

у меня заработало

P.S.

  1. там также есть закрывающий php открывающий тег без слова php
  2. внизу есть закрывающий php тег, который можно убрать
  3. есть уведомление о неопределенном индексе.
  4. лучше было бы использовать $charset = get_option('blog_charset');

Я не знаю, связано ли это: http://wordpress.org/support/topic/plugin-json-api-content-length-header с моей проблемой, или это: http://core.trac.wordpress.org/ticket/11537, или это: http://wordpress.org/support/topic/wordpress-gone-wild?replies=3, не разбирался в этом.

13 нояб. 2010 г. 21:18:25
Комментарии

просто обратил внимание, так как это может раздражать: "там также есть закрывающий php-тег без слова php" -> закрывающие php-теги никогда не содержат слово php. это просто ?>

hakre hakre
18 нояб. 2010 г. 00:29:00

извините... я имел в виду открывающий тег (вторая строка сбила меня с толку), проверьте код плагина (заметил это, потому что он не работал на моем сервере, пришлось добавить "php")

edelwater edelwater
18 нояб. 2010 г. 01:46:35

вау, ну это то, что должен исправить автор плагина. это то, что каждый из нас должен делать для общего кода: добавлять php в открывающие теги, так как короткая версия (без php) работает не на каждом сервере. Это действительно то, о чем стоит уведомить автора плагина.

hakre hakre
18 нояб. 2010 г. 02:26:17