#php #xml #wordpress #parsing #modx
#php #xml #wordpress #Синтаксический анализ #modx
Вопрос:
Я обнаружил, что ресурсов для этого мало. Я использую MODX в качестве CMS и хочу перенести свои существующие блоги из WordPress и использовать их в новой CMS. Ресурсов для перехода с MODX на WP предостаточно, но есть только один опубликованный метод для перехода с WP на MODX, использующий метод Articles, который, к сожалению, больше не работает. Связано ли это с тем, что статьи не обновлялись или XML-файл из WP несовместим.
В любом случае, мне остается пытаться сделать это по старинке, и я не смогу перенести каждую статью по одной. Я хочу узнать, как взять экспортированный XML-файл из WP и проанализировать его в MODX, возможно, используя PHP. Но я не уверен, с чего начать.
Любые предложения были бы полезны … да, я уже пробовал Google. Я не уверен, с чего начать.
Спасибо!
Ответ №1:
Здесь вам может быть полезен фрагмент кодаgetFeed. Вы можете взять его код, немного изменить и обработать элементы ленты WP, что-то вроде следующего:
if (!empty($url) amp;amp; $modx->getService('rss', 'xmlrss.modRSSParser')) {
$rss = $modx->rss->parse($url);
if (!empty($rss) amp;amp; isset($rss->items)) {
while (list($itemKey, $item) = each($rss->items)) {
foreach ($item as $k => $v) {
$item[$k] = str_replace(array('[',']'),array('amp;#91;','amp;#93;'),$item[$k]);
}
/// process rss items here
// f.e. add new modx resources
$newArticle = $this->modx->newObject('modResource'); //new article
$newArticle->set( 'template', ARTICLE_TEMPLATE_ID ); // replace ARTICLE_TEMPLATE_ID with actual article template id
$newArticle->set( 'pagetitle', $item['title'] ); // pagetitle
$newArticle->set( 'parent', ARTICLE_CONTAINTER_ID);
$newArticle->set( 'content', $item['description'] );
//add other valuable fields
if(!$newArticle->save()){
// modx error
}
}
}