В настоящее время я работаю над сценарием миграции для вставки статей из XML в Wordpress.
Пока я проанализировал XML и создал массивы в PHP, я перебираю эти массивы и вставляю их все один за другим в Wordpress со следующим кодом:
$post = array(
'post_title' => wp_strip_all_tags($article['title']),
'post_content' => $article['description'],
'post_status' => 'publish',
'post_author' => 1,
'ping_status' => 'closed',
'post_date' => $dateTime->format('Y-m-d H:i:s'),
'post_type' => $post_type
);
$result = wp_insert_post($post);
Все бы ничего, но вот проблема: XML — это экспорт с сайта (к сожалению, не знаю какой CMS), а в содержании могут быть ссылки на файлы на том же сайте, например:
<![CDATA[<p><strong>Shortcuts:</strong></p>
<p/>
<ul>
<li><a href="http://www.testsite.fi/julkaisut/5440/julkaisut?contentPath=fi/julkaisut/esitteet/elakkeen_hakeminen_ulkomailta">(Booklet in Finnish)</a>
</li>
<li><a href="http://www.testsite.fi/julkaisut/5440/julkaisut?contentPath=fi/julkaisut/esitteet/sa_har_soker_du_pension_fran_utlandet">(Booklet in Swedish)</a>
</li>
<li><a href="http://www.testsite.fi/julkaisut/5440/julkaisut?contentPath=fi/julkaisut/esitteet/pensioni_taotlemine_valismaalt">(Booklet in Estonian)</a>
</li>
<li><a href="http://www.testsite.fi/julkaisut/5440/julkaisut?contentPath=fi/julkaisut/esitteet/poluchenie_pensii_iz_drugih_stran">(Booklet in Russian)</a>
</li>
</ul>]]>
Testsite.fi — мой собственный сайт, так что это внутренние ссылки.
Эти ссылки относятся к PDF-файлам, и их следует вставить в WordPress, но очевидно, что ссылки будут другими. У меня есть PDF-файлы, на которые ссылаются (например: elakkeen_hakeminen_ulkomailta.pdf, и они находятся в той же папке, что и этот скрипт), поэтому все, что требуется, — это загрузить этот файл в Wordpress программно или вручную переместить его в нужное место. , а затем обновите ссылки, чтобы они по-прежнему работали.
Любая подсказка, как это сделать? Я что-то предполагаю с регулярными выражениями, но не могу понять.