Мне было назначено импортировать большое количество контента из определенной базы данных, принадлежащей собственной системе CMS, на новую установку WordPress , После написания хорошего PHP-скрипта для извлечения записей и вставки их с помощью функции wp_insert_post()
, у меня теперь возникла проблема.Лучший способ создания правильной разметки для вставки в WordPress из PHP (импорт из другой CMS)
Что я хочу сделать, это «фильтровать» мою входную строку, которая является исходным контентом, в соответствии с форматом, используемым изначально WordPress, когда содержимое копируется в встроенный редактор. Например, вот как это будет выглядеть так:
<strong>UIR e OER</strong>
Os verbos terminados em <strong>-uir</strong> e <strong>-oer</strong> terão as 2ª e 3ª pessoas do singular do presente do indicativo escritas com <strong>-i-</strong>:
<strong> </strong>
<strong>– tu possuis</strong>
<strong>– ele possui</strong>
<strong>– tu constróis</strong>
...
Теперь, это то, как исходное содержание извлекается из базы данных источника:
<p> <b style="line-height: 150%; text-align: center;"><span style="font-size:13.5pt;line-height:150%; font-family:"Arial","sans-serif";mso-fareast-font-family:"Times New Roman"; mso-fareast-language:PT-BR">UIR e OER</span></b></p> <p class="MsoNormal" style="mso-margin-bottom-alt:auto;line-height:150%"><span style="font-size:12.0pt;line-height:150%;font-family:"Times New Roman","serif"; mso-fareast-font-family:"Times New Roman";mso-fareast-language:PT-BR"> <o:p></o:p></span></p> <p class="MsoNormal" style="mso-margin-bottom-alt:auto;line-height:150%"><span style="font-size:12.0pt;line-height:150%;font-family:"Arial","sans-serif"; mso-fareast-font-family:"Times New Roman";mso-fareast-language:PT-BR">Os verbos terminados em <b>-uir</b> e <b>-oer</b> terão as 2ª e 3ª pessoas do singular do presente do indicativo escritas com <b>-i-</b>:<b> <o:p></o:p></b></span></p> <p class="MsoNormal" style="mso-margin-bottom-alt:auto;line-height:150%"><b><span style="font-size:12.0pt;line-height:150%;font-family:"Arial","sans-serif"; mso-fareast-font-family:"Times New Roman";mso-fareast-language:PT-BR"> </span></b></p> <p class="MsoNormal" style="mso-margin-bottom-alt:auto;line-height:150%"><b><span style="font-size:12.0pt;line-height:150%;font-family:"Arial","sans-serif"; mso-fareast-font-family:"Times New Roman";mso-fareast-language:PT-BR">- tu possuis<o:p></o:p></span></b></p> <p class="MsoNormal" style="mso-margin-bottom-alt:auto;line-height:150%"><b><span style="font-size:12.0pt;line-height:150%;font-family:"Arial","sans-serif"; mso-fareast-font-family:"Times New Roman";mso-fareast-language:PT-BR">- ele possui<o:p></o:p></span></b></p> <p class="MsoNormal" style="mso-margin-bottom-alt:auto;line-height:150%"><b><span style="font-size:12.0pt;line-height:150%;font-family:"Arial","sans-serif"; mso-fareast-font-family:"Times New Roman";mso-fareast-language:PT-BR">- tu constróis<o:p></o:p></span></b></p>
Сначала казалось, что wp_insert_post()
будет обрабатывать автоматически , и на самом деле он выполняет некоторую обработку, однако этого недостаточно.
Это как содержание является хранится в сценарии импорта:
<p> <b style="line-height: 150%; text-align: center;"><span style="font-size:13.5pt;line-height:150%;
font-family:"Arial","sans-serif";mso-fareast-font-family:"Times New Roman";
mso-fareast-language:PT-BR">UIR e OER</span></b></p>
<p class="MsoNormal" style="mso-margin-bottom-alt:auto;line-height:150%"><span style="font-size:12.0pt;line-height:150%;font-family:"Times New Roman","serif";
mso-fareast-font-family:"Times New Roman";mso-fareast-language:PT-BR"> <o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-bottom-alt:auto;line-height:150%"><span style="font-size:12.0pt;line-height:150%;font-family:"Arial","sans-serif";
mso-fareast-font-family:"Times New Roman";mso-fareast-language:PT-BR">Os verbos terminados em <b>-uir</b> e <b>-oer</b> terão as 2ª e 3ª pessoas do singular do presente do indicativo escritas com <b>-i-</b>:<b> <o:p></o:p></b></span></p>
<p class="MsoNormal" style="mso-margin-bottom-alt:auto;line-height:150%"><b><span style="font-size:12.0pt;line-height:150%;font-family:"Arial","sans-serif";
mso-fareast-font-family:"Times New Roman";mso-fareast-language:PT-BR"> </span></b></p>
<p class="MsoNormal" style="mso-margin-bottom-alt:auto;line-height:150%"><b><span style="font-size:12.0pt;line-height:150%;font-family:"Arial","sans-serif";
mso-fareast-font-family:"Times New Roman";mso-fareast-language:PT-BR">- tu possuis<o:p></o:p></span></b></p>
<p class="MsoNormal" style="mso-margin-bottom-alt:auto;line-height:150%"><b><span style="font-size:12.0pt;line-height:150%;font-family:"Arial","sans-serif";
mso-fareast-font-family:"Times New Roman";mso-fareast-language:PT-BR">- ele possui<o:p></o:p></span></b></p>
<p class="MsoNormal" style="mso-margin-bottom-alt:auto;line-height:150%"><b><span style="font-size:12.0pt;line-height:150%;font-family:"Arial","sans-serif";
mso-fareast-font-family:"Times New Roman";mso-fareast-language:PT-BR">- tu constróis<o:p></o:p></span></b></p>
Моя первая идея состояла в том, чтобы реализовать функцию сам, основываясь на preg_replace()
и html_entity_decode()
, однако, казалось бы, мне кажется, что есть гораздо более элегантное решение. Здесь?
Редактировать: Иными словами, делает ли PHP или WordPress сам способ обработки содержимого, например TinyMCE (который является встроенным редактором WordPress)? Естественно, я не могу полагаться на TinyMCE, потому что это инструмент JavaScript.