У меня есть несколько пользователей, которые публикуют сообщения в групповом блоге и могут вырезать и вставлять, но их вставки включают в себя такие вещи, как:
<!– /* Font Definitions */ @font-face {font-family:”Cambria Math”; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:1; mso-generic-font-family:roman; mso-font-format:other; mso-font-pitch:variable; mso-font-signature:0 0 0 0 0 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-520092929 1073786111 9 0 415 0;} @font-face {font-family:”Trebuchet MS”; panose-1:2 11 6 3 2 2 2 2 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:647 0 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:”"; margin-top:0in; margin-right:0in; margin-bottom:10.0pt; margin-left:0in; line-height:115%; mso-pagination:widow-orphan; font-size:12.0pt; font-family:”Trebuchet MS”,”sans-serif”; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-bidi-font-family:”Times New Roman”; mso-bidi-theme-font:minor-bidi; color:black;} p {mso-style-noshow:yes; mso-style-priority:99; mso-margin-top-alt:auto; margin-right:0in; mso-margin-bottom-alt:auto; margin-left:0in; mso-pagination:widow-orphan; font-size:12.0pt; font-family:”Times New Roman”,”serif”; mso-fareast-font-family:”Times New Roman”;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-size:12.0pt; mso-ansi-font-size:12.0pt; mso-bidi-font-size:12.0pt; mso-ascii-font-family:”Trebuchet MS”; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:”Trebuchet MS”; mso-bidi-font-family:”Times New Roman”; mso-bidi-theme-font:minor-bidi; color:black;} .MsoPapDefault {mso-style-type:export-only; margin-bottom:10.0pt; line-height:115%;} @page WordSection1 {size:8.5in 11.0in; margin:1.0in 1.0in 1.0in 1.0in; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;} div.WordSection1 {page:WordSection1;} –>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:”Table Normal”;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:”";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:”Calibri”,”sans-serif”;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:”Times New Roman”;
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:”Times New Roman”;
mso-bidi-theme-font:minor-bidi;}
Что я могу сделать, чтобы автоматически отфильтровывать такой код?
Предлагает ли загрузить вариант? Может быть, что- то вроде semiologic.com/software/article-uploader ?
harkre, загрузка контента была бы интересной, но кажется не очень естественной, если человек хочет отредактировать.
да я поэтому и спрашивал. Для редактирования (но это уже ответ) есть плагин TinyMCE, который позаботится об этом. Обычно это значок буфера обмена с прикрепленным к нему символом Word.
Не забудьте нажать кнопку «Кухонная раковина» в крайнем правом углу списка значков, чтобы просмотреть эту часть меню… у большинства пользователей кухонная раковина не будет расширена по умолчанию, и они полностью пропустят эту опцию.
Разве этого недостаточно, посмотрите проект wordoff на github: github.com/tomdyson/wordoff Этот фильтр очень хорош из word.
Я отредактировал фильтр на
'content_save_pre'
. Хороший улов, кевфорель. Нет причин хранить этот мусор, поэтому проще всего вырезать его при публикации и сохранить ресурсы для внешнего интерфейса.В визуальном текстовом редакторе, встроенном в WordPress, есть кнопка, которая удаляет форматирование Microsoft Word. Он называется «Вставить из Word».
Я бы предложил использовать плагин Ozh TinyMCE Advanced. Он позволяет вам добавить опцию «Вставить из Word», которая позаботится обо всем этом за вас.
Однако, если вас это не интересует, у вас есть еще несколько вариантов. Так:
Просто продолжайте добавлять нежелательные объявления в первый набор захвата в этом регулярном выражении, чтобы добавить строки, которые следует удалить. Например:
(mso|panose|other-junk|annoyance)
.Я работал с клиентами, которые часто сталкиваются с этой проблемой. Я обнаружил, что хитрость заключается в том, чтобы скопировать и вставить в представление HTML, а затем вернуться в визуальный редактор, чтобы при необходимости настроить форматирование.
Это также необходимо при копировании с другого сайта. Иногда вы случайно получаете определения классов и встроенные стили из внешнего источника, и это может привести к поломке отображения, если у вас нет тех же классов или стилей, настроенных или поддерживаемых вашим сайтом.
Другим вариантом может быть предоставление вашим пользователям доступа к Windows Live Writer. Это совершенно бесплатный продукт Microsoft, который прекрасно сочетается с копированием и вставкой из Word и может взаимодействовать с WordPress — вы пишете сообщение, редактируете сообщение, используете встроенную проверку орфографии, форматируете сообщение, чтобы оно отображалось именно так, как вы хотите, затем нажмите «Опубликовать», чтобы отправить сообщение в WordPress через XMLRPC. Это довольно надежная система, которая позволяет невероятно легко научить начинающего блоггера вести блог… особенно потому, что пользовательский интерфейс с самого начала очень похож на Word.
Для тех, кто ищет решение этой проблемы, я сделал что-то вроде этого:
Вы можете заменить строки в функции delete_between на все, что захотите. Это, похоже, сработало для меня.