Мне нужно внести несколько незначительных изменений на веб-сайт, созданный в WordPress, и я столкнулся с некоторыми проблемами с функцией wp_insert_content. Эта функция санатизирует ввод, полностью исключая некоторые HTML-теги (например) и удаляя атрибуты других. Я хотел бы, чтобы переключить это прочь, и везде я нахожу ссылку на http://pp19dd.com/2010/06/unfiltered-wp_insert_post/ где решение добавитьОстановить фильтрацию WordPress function wp_insert_post
'filter' => true
на сообщения входного массива.
Эта статья с 2010 года, и из того, что я нашел, добавлена дополнительная линия в 2011 году (http://web.archiveorange.com/archive/v/TDTh42SUwDEc1GFmSrvU). Эта строка гласит:
unset($postarr[ 'filter' ]);
и вызывается сразу после объединения ввода с параметрами по умолчанию, и перед дезинфицировать. Мне кажется, что эта строка отменяет приведенный выше оператор 'filter' => true. Действительно, дезинфекция происходит, если линия есть, и исчезает, если линия вынимается.
Таким образом, простым решением было бы добавить 'filter' => true и удалить дополнительную строку в функции. Проблема в том, что я понятия не имею, где еще используется эта функция, и мне интересно, не стоит ли вообще взламывать код WP. Обновление WP в любом случае восстановит его. Итак ... есть ли другой способ остановить эту функцию от дезинфекции входа?
От имени анонимного пользователя ... ** Редактировать ** Это похоже на трюк: 'kses_remove_filters(); wp_insert_post ($ my_post); kses_init_filters(); 'Задача решена! –
Так и не работал для меня. – urok93
Я тестирую последний Wordpress, и он позволяет мне вставлять html-теги (изображения, iframes). Какой тег он точно удаляет? В вашем примере выше ваш пример был удален! – nowhere