Could you please publish this script? i would like to delete all tags with low use and dont want to click 1000 times.@Xon was kind enough to provide me with a script to delete unused and low use tags. 15k tags were deleted.
$page = intval($_GET['p']);
$pp = 350;
$start = $page*$pp;
$link = mysqli_connect($host,$user,$pass);
if($link) { if(mysqli_select_db($link,$datb)){
mysqli_query($link,"SET NAMES 'utf8'");
mysqli_query($link,"SET CHARACTER SET 'utf8'");
}
}
$q = "SELECT thread_id,CONVERT(tags USING utf8) AS tagx, LENGTH(tags) AS tl FROM xf_thread WHERE LENGTH(tags)>5 LIMIT $start,$pp";
$r = mysqli_query($link,$q);
while($row = mysqli_fetch_assoc($r))
{
$row_arr[] = $row;
}
foreach($row_arr AS $row){
$t = unserialize($row['tagx']);
$threadID = $row['thread_id'];
echo "<pre>threadID: ".$threadID." # </pre>";
foreach($t AS $k => $v){
if($f = mysqli_fetch_assoc( mysqli_query($link,"SELECT tag_id FROM xf_tag WHERE tag='".$v['tag']."'") ) ){
echo " tagid_".$f['tag_id']."; ";
}else {
echo "<font color=red> no_tagid_found: ".$v['tag']."; </font>";
unset($t[$k]); //remove not existing tag
}
}
$tx = serialize($t);
if($row['tagx']!=$tx){
//update
$q = "UPDATE xf_thread SET tags='$tx' WHERE thread_id='$threadID' LIMIT 1";
if(mysqli_query($link,$q)){ echo "-!!-"; }else{ echo "-EE-"; }
echo "<br />".$tx;
echo "<br />".$row['tagx'];
}else{
echo "---ident!";
}
echo "<hr />";
}
$page++;
echo "<a href='?p=$page'>NEXT PAGE</a><meta http-equiv=refresh content='1,?p=$page' />";
<?php
exit();
$startTime = microtime(true);
@set_time_limit(0);
ignore_user_abort(true);
$fileDir = dirname(__FILE__);
require($fileDir . '/library/XenForo/Autoloader.php');
XenForo_Autoloader::getInstance()->setupAutoloader($fileDir . '/library');
XenForo_Application::initialize($fileDir . '/library', $fileDir);
XenForo_Application::set('page_start_time', $startTime);
$dependencies = new XenForo_Dependencies_Public();
$dependencies->preLoadData();
$db = XenForo_Application::get('db');
$tags = $db->fetchAll("
select *
from xf_tag
where xf_tag.use_count < 10;
");
print count($tags) . " about to delete in 2 seconds\n";
sleep(2);
print "Now deleting\n";
foreach($tags as $tag)
{
$dw = XenForo_DataWriter::create('XenForo_DataWriter_Tag');
$dw->setExistingData($tag);
$dw->delete();
}
$threads = $db->fetchAll("
SELECT thread_id
FROM xf_thread
WHERE xf_thread.tags <> 'a:0:{}' and xf_thread.tags <> ''
");
/** @var XenForo_Model_Tag $tagModel */
$tagModel = XenForo_Model::create('XenForo_Model_Tag');
foreach ($threads AS $thread)
{
XenForo_Db::beginTransaction($db);
$tagModel->rebuildTagCache('thread', $thread['thread_id']);
XenForo_Db::commit($db);
}
We use essential cookies to make this site work, and optional cookies to enhance your experience.