Как мне разобрать файл XML из Wordpress для использования в другой CMS? - PullRequest
0 голосов
/ 07 марта 2019

Я считаю, что ресурсы для этого скудны. Я использую MODX в качестве CMS и хочу взять мои существующие блоги из Wordpress и использовать их в новой CMS. Ресурсов достаточно для перехода от MODX к WP, но есть только один опубликованный метод для WP к MODX, с использованием метода Articles , который, к сожалению, больше не работает. Это потому, что Статьи не были обновлены или XML-файл из WP несовместим.

Во всяком случае, у меня сейчас остались попытки сделать это старомодным способом, и я не смогу перенести каждую статью по одному. Я хочу узнать, как взять экспортированный XML-файл из WP и проанализировать его в MODX, возможно, с использованием PHP. Но я не уверен, с чего начать.

Любые предложения будут полезны ... да, я уже пробовал Google. Я не уверен, с чего начать.

Спасибо!

1 Ответ

0 голосов
/ 16 марта 2019

getFeed фрагмент кода может быть полезен для вас здесь. Вы можете взять его код, немного изменить и обработать элементы фида WP, что-то вроде следующего:

if (!empty($url) && $modx->getService('rss', 'xmlrss.modRSSParser')) {
    $rss = $modx->rss->parse($url);
    if (!empty($rss) && isset($rss->items)) {
        while (list($itemKey, $item) = each($rss->items)) {
            foreach ($item as $k => $v) {
                $item[$k] = str_replace(array('[',']'),array('[',']'),$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
            }

    }
}
...