| Server IP : 202.61.199.114 / Your IP : 216.73.217.139 Web Server : nginx/1.22.1 System : Linux de.arni-solutions.de 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64 User : web20 ( 1018) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /tmp/ |
Upload File : |
<?php
require '/var/www/clients/client2/web20/web/wp-load.php';
global $wpdb;
// Map: broken path => correct path
$fixes = array(
// Missing parent prefix
'/speicheltest/' => '/drogentest/speicheltest/',
'/urintest/' => '/drogentest/urintest/',
'/nachweiszeiten-drogen-thc-kokain-amphetamin/' => '/ratgeber/nachweiszeiten-drogen-thc-kokain-amphetamin/',
'/cannabis-am-steuer-2026-thc-grenzwert-fuehrerschein/' => '/ratgeber/cannabis-am-steuer-2026-thc-grenzwert-fuehrerschein/',
'/cannabis-marihuanakonsum-nachweisen/' => '/informationen/cannabis-marihuanakonsum-nachweisen/',
'/mpu-drogen-abstinenznachweis-vorbereitung/' => '/ratgeber/mpu-drogen-abstinenznachweis-vorbereitung/',
// Content moved / renamed
'/ratgeber/thc-drogentest/' => '/informationen/cannabis-marihuanakonsum-nachweisen/',
'/thc-nachweisbarkeit/' => '/ratgeber/nachweiszeiten-drogen-thc-kokain-amphetamin/',
'/cannabis-grenzwerte/' => '/ratgeber/cannabis-am-steuer-2026-thc-grenzwert-fuehrerschein/',
// Dubai → UAE
'/einfach-aufgeklaert/drogenpolitik/dubai/' => '/einfach-aufgeklaert/drogenpolitik/vereinigte-arabische-emirate/',
);
$base = 'https://www.drogentest-online.de';
$posts = $wpdb->get_results("SELECT ID, post_content FROM {$wpdb->posts} WHERE post_type='drogenpolitik' AND post_status='publish'");
$total_replacements = 0;
$updated_posts = 0;
foreach ($posts as $p) {
$content = $p->post_content;
$new_content = $content;
foreach ($fixes as $broken => $correct) {
// Replace full URL form
$new_content = str_replace($base . $broken, $base . $correct, $new_content);
// Replace relative URL form (href="/path/")
$new_content = str_replace('href="' . $broken . '"', 'href="' . $base . $correct . '"', $new_content);
}
if ($new_content !== $content) {
$count = 0;
// Count actual replacements
foreach ($fixes as $broken => $correct) {
$count += substr_count($content, $base . $broken);
$count += substr_count($content, 'href="' . $broken . '"');
}
$total_replacements += $count;
$updated_posts++;
$wpdb->update($wpdb->posts, array('post_content' => $new_content), array('ID' => $p->ID));
echo "Post ID {$p->ID}: $count link(s) fixed\n";
}
}
echo "\nDone: $total_replacements links fixed across $updated_posts posts.\n";