Skip to content

Instantly share code, notes, and snippets.

@hhkaos
Last active May 7, 2022 14:35
Show Gist options
  • Save hhkaos/54f872109fa41c9b9ec5cbd8faff1c14 to your computer and use it in GitHub Desktop.
Save hhkaos/54f872109fa41c9b9ec5cbd8faff1c14 to your computer and use it in GitHub Desktop.
Code to extract all tags used in Wordpress articles to CSV
/*
Run this from your Google Console at https://your-domain.com/wp-admin/edit.php
Double check if '#post_tag option' is the right selector
*/
var regExp = /\(([^)]+)\)$/;
var x= [];
document.querySelectorAll('#post_tag option').forEach(el => {
var matches = regExp.exec(el.innerHTML);
if(matches){
x.push([el.value, matches[1]])
}
})
const arrayToCSV = (arr, delimiter = ',') =>
arr.map(v => v.map(x => `"${x}"`).join(delimiter)).join('\n');
var objectToCSVRow = function(dataObject) {
var dataArray = new Array;
for (var o in dataObject) {
var innerValue = dataObject[o]===null?'':dataObject[o].toString();
var result = innerValue.replace(/"/g, '""');
result = '"' + result + '"';
dataArray.push(result);
}
return dataArray.join(',') + '\r\n';
}
var exportToCSV = function(arrayOfObjects) {
if (!arrayOfObjects.length) {
return;
}
var csvContent = "data:text/csv;charset=utf-8,";
// headers
csvContent += objectToCSVRow(Object.keys(arrayOfObjects[0]));
arrayOfObjects.forEach(function(item){
csvContent += objectToCSVRow(item);
});
var encodedUri = encodeURI(csvContent);
var link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "object-2-csv.csv");
document.body.appendChild(link); // Required for FF
link.click();
document.body.removeChild(link);
}
exportToCSV(x)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment