Skip to content

Instantly share code, notes, and snippets.

@kevincolten
Created July 16, 2018 06:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kevincolten/010496b1cc8d79276dc005fa94f4ff0f to your computer and use it in GitHub Desktop.
Save kevincolten/010496b1cc8d79276dc005fa94f4ff0f to your computer and use it in GitHub Desktop.
Wordpress - Match Selected Posts with Featured Image Export
const { xml2json, json2xml } = require('xml-js');
const { readFileSync, writeFileSync } = require('fs');
const postIds = require('./postIds').map(id => Number(id));
const xml = JSON.parse(xml2json(readFileSync('./export.xml')));
const comments = xml.elements.filter(element => element.type === 'comment');
const rss = xml.elements.find(element => element.name === 'rss');
const channel = rss.elements.find(element => element.name === 'channel');
const nonItems = channel.elements.filter(element => element.name !== 'item');
const matchingItems = channel.elements.filter(element => {
return element.name === 'item' && element.elements.some(element => {
return element.elements && element.elements.some(element => {
return postIds.includes(Number(element.text));
});
});
});
const matched = {
...xml,
elements: [
...comments,
{
...rss,
elements: [
{
...channel,
elements: [
...nonItems,
...matchingItems
]
}
]
}
]
}
writeFileSync('./matched.xml', json2xml(matched, { spaces: 2 }));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment