/*
Plugin Name: SchmidtKing – Erweiterter Script-Cleaner
Description: Entfernt externe CDNJS- und jsDelivr-Skripte direkt aus dem HTML-Ausgabequelltext zur DSGVO/TDDDG-Konformität.
Version: 1.1
Author: SchmidtKing
*/
function schmidtking_start_output_buffering() {
ob_start('schmidtking_clean_output');
}
add_action('template_redirect', 'schmidtking_start_output_buffering');
function schmidtking_clean_output($buffer) {
// Entferne jsDelivr und CDNJS #is', '', $buffer);
$buffer = preg_replace('##is', '', $buffer);
return $buffer;
}
/*
Plugin Name: SchmidtKing – Externe Skripte blockieren & ersetzen
Description: Blockiert automatisch externe Skripte von CDNJS und jsDelivr und ersetzt sie durch lokale Versionen zur DSGVO-Konformität.
Version: 1.0
Author: SchmidtKing
*/
function schmidtking_deregister_conflicting_scripts() {
global $wp_scripts;
if (!is_admin()) {
foreach ($wp_scripts->registered as $handle => $script) {
if (
strpos($script->src, 'cdn.jsdelivr.net') !== false ||
strpos($script->src, 'cdnjs.cloudflare.com') !== false
) {
wp_deregister_script($handle);
}
}
}
}
add_action('wp_enqueue_scripts', 'schmidtking_deregister_conflicting_scripts', 1);
function schmidtking_enqueue_replacements() {
$base_url = plugin_dir_url(__FILE__) . 'js/';
wp_enqueue_script(
'keen-slider-local',
$base_url . 'keen-slider.min.js',
array(),
null,
true
);
wp_enqueue_script(
'lazyload-local',
$base_url . 'lazyload.min.js',
array(),
null,
true
);
}
add_action('wp_enqueue_scripts', 'schmidtking_enqueue_replacements', 100);