Поддержка Проблемы и решения Есть избавление от wpautop, wptexturize, convert_chars и прочей пакост

  • Только-только активировал сетевые функции WordPress 3.3.2 (для развития бизнеса требуется несколько вспомогательных сайтов), и тут во всей красе проявилась старая багофича WordPress, выдаваемая разработчиками за благо: насильственные манипуляции с кодом контента. Ведь предупреждал Мерфи, что создать работающую защиту от идиота невозможно в принципе, поскольку кретины в массе своей чрезвычайно изобретательны, а человеческая глупость даёт нам представление о бесконечности…
    Новосозданные сайты дают возможность вволю ставить совершенно безопасные эксперименты. Я перепробовал по очереди

    • Disabler,
    • Enable RAW HTML — Disable Corruption,
    • PS Disable Auto Formatting,
    • Raw HTML,
    • Text Control,
    • TRUEedit

    — бестолку, не помогает ничего. В особенности выводит из себя преобразование в истинные символы их кодовых нотаций (любых, хоть именованных, хоть десятичных или шестнадцатиричных): попробуйте-ка на глаз отличить волосяную шпацию от тонкой или третной, или хотя бы неразрывную кегельную от простой.
    Особенно подозрительно, что не работает ни одно из проверенных другими средств. Похоже, я что-то делаю не так, только вот что?
    Cуществует ли радикальное средство просто избавиться от этакой помощи, как-то вручную, совсем без подключаемых модулей заблокировав издевательскую функциональность? Я бы предпочёл, чтобы в базу данных отправлялось в точности то, что отправил туда я, c ошибками или без таковых, и вне всякой зависимости от того, создаю я контент в визуальном редакторе или нет, и сколько раз переключаюсь в режим работы с кодом HTML.

Просмотр 12 ответов — с 1 по 12 (всего 12)
  • Это борьба с ветряной мельницей.. Или надо смириться или искать другой продукт, потому как править придется колоссальный объем кода.
    Хотя есть не менее сложный вариант, но он для тех, кто имеет настойчивое желание остаться на WordPress, — использовать SHORTINIT (думаю, гугл подскажет shortinit wordpress), а уже по-потребности подключать то, что устраивает.

    Не думаю.
    Во-первых, что один человек сложил, другой завсегда разобрать может. Во-вторых, учитывая грамотную модульную конструкцию этой системы, в страшилки насчёт колоссального объёма верится слабо.
    Другое дело, что такие манипуляции требуют узкопрофессиональных знаний, не сильно уступающих знаниям разработчиков. Воплотить по подсказке мелкое редактирование кода я ещё способен, но без подсказок понимание php оставляет желать, хотя сами эти потуги требуют от меня колоссального напряжения и постоянного ковыряния в справочниках. Толку от этого негусто.

    Корень всех бед лежит здесь wp-includes/formatting.php
    Взгляните, сколько взаимосвязанных функций, даже профессионалы сталкиваются с опорожняющим нервы «нужным» форматированием..
    А начинают работать они вероятно здесь wp-includes/default-filters.php

    Да я, в принципе, знаю, где они расположены. И добраться могу.
    Только одно дело знать, в каком месте делают кесарево сечение, и немножко другое — проделать эту операцию самостоятельно так, чтобы выжил хоть кто-нибудь. Трезвый-то врач, даже ветеринар, вполне управится при наличии инструментов. А я, не имея врача хотя бы на телефоне, и при наличии инструментов только зарезать могу. Во всяком случае, шансов выжить у такой роженицы и плода негусто без хотя бы дистанционного руководства операцией.
    За тем и пришёл.

    Попробуйте «убить» эти фильтры, за результат не ручаюсь, так как нету экспериментальной основы под рукой. Добавить в файл functions.php активной Темы такие строки:

    remove_filter( 'the_content', 'wptexturize'        );
    remove_filter( 'the_content', 'convert_smilies'    );
    remove_filter( 'the_content', 'convert_chars'      );
    remove_filter( 'the_content', 'wpautop'            );

    Эти фильтры определены во втором, указанном мной, файле.

    Да вот уже и сам пробую заблокировать wptexturize… В крайнем случае, потом удалю этот фрагмент. Знать бы ещё толком, куда его вставлять… Но редактор вроде нарушений синтаксиса не видит. Пока.
    Только ведь даже если сработает, то при обновлении темы это всё запросто слетит.

    Я далеко не ходил, но существует смутное подозрение, что и сам редактор, который TinyMCE (лежит здесь wp-includes/js/tinymce/) вносит свою лепту. Потому как при переключении с HTML на WYSIWYG слетает, определенное мной, форматирование. А так как перезагрузки страницы не происходило, то лишние манипуляции происходят с помощью javascript (жаль, но в нем я вообще не разбираюсь).

    при обновлении темы это всё запросто слетит

    На этот случай имеется удобный механизм Дочерние Темы

    существует смутное подозрение, что и сам редактор, который TinyMCE

    Ой, у меня такое же… Таки надо ждать сведущий народ. Плохо, гулянка сегодня, до вечера вряд ли кто и сунется.

    На этот случай имеется удобный механизм Дочерние Темы

    Хм, да, я как-то совсем в запарке забыл про этот фокус. А ведь читал…

    По TinyMCE надо читать доки, а их с избытком… Вот, есть подозрительный раздел Cleanup/Output http://www.tinymce.com/wiki.php/Configuration

    Так будь у меня столько времени в запасе, я б с радостью ещё и Британскую энциклопедию осилил! Но я не ворон; это они живут по 300 лет, причём покушать найдут себе всегда. Освоить очередную профессию с нуля я просто не успею, разорение наступит раньше.
    Короче, вставка

    /*
    * Disables wptexturize, wpautop and convert_chars filter to stop corruption of user-unput HTML code. 2012.05.09
    */
    remove_filter( 'the_content', 'wptexturize' );
    remove_filter( 'the_content', 'wpautop' );
    remove_filter( 'the_content', 'convert_chars' );

    никакого видимого эффекта не дала. Неразрывный пробел в именованной нотации   при переключении в визуальный редактор и назад был моментально преобразован в настоящий символ (ну в точности как в этом замечательном форуме!). Мой TinyMCE хотя бы их присутствие показывает, но всё остальное — дудки.
    Буду ждать кого-то с бубном.

    Legendre, посмотри сюда, мож чё натолкнёт на мысль

    Меня?! Лестно такое читать, wp-user.php, но вы переоцениваете мои силы. Мой текущий конструктор примеры по ссылке понял бы без особого напряжения (при всей его неприязни к php как языку), однако у меня самое приблизительное постижение такой истины займёт сутки. Конструктора я увижу только в пятницу.
    При всём уважении к консультанту Юрию, его совет сильно напоминает известную хохму о рисовании совы. 😉
    Мне другое непонятно: столько народу столько времени героически противостоит странностям мировосприятия создателей WordPress (опять же, with all due respect), а толковой статьи «Как навсегда отучить контуженную программу уродовать контент, написанный вменяемым половозрелым человеком» не существует даже на английском языке.

Просмотр 12 ответов — с 1 по 12 (всего 12)
  • Тема «Есть избавление от wpautop, wptexturize, convert_chars и прочей пакост» закрыта для новых ответов.