Minecraft-Modern-Theme-Child/functions.php aktualisiert
This commit is contained in:
@@ -1,42 +1,74 @@
|
||||
<?php
|
||||
|
||||
// Exit if accessed directly.
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
}
|
||||
|
||||
// === 1. Stylesheets korrekt laden ===
|
||||
function child_theme_enqueue_styles() {
|
||||
// Lädt das Stylesheet des Parent Themes
|
||||
wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
|
||||
|
||||
// Lädt das Stylesheet des Child Themes (abhängig vom Parent-Style)
|
||||
wp_enqueue_style( 'child-style',
|
||||
get_stylesheet_directory_uri() . '/style.css',
|
||||
array( 'parent-style' ),
|
||||
wp_get_theme()->get('Version')
|
||||
);
|
||||
}
|
||||
add_action( 'wp_enqueue_scripts', 'child_theme_enqueue_styles' );
|
||||
|
||||
|
||||
// === 2. Nur das FAQ-Skript austauschen ===
|
||||
function child_theme_swap_faq_script() {
|
||||
// Entfernt das Skript, das das Parent Theme geladen hat
|
||||
wp_deregister_script( 'faq-accordion-script' );
|
||||
|
||||
// Lädt Ihr neues, verbessertes Skript aus dem Child Theme
|
||||
// Wir verwenden den gleichen Namen ('Handle'), um Konflikte zu vermeiden
|
||||
wp_enqueue_script(
|
||||
'faq-accordion-script', // Gleicher Name wie im Parent Theme
|
||||
get_stylesheet_directory_uri() . '/js/faq-accordion.js', // Pfad zur neuen JS-Datei
|
||||
array( 'jquery' ),
|
||||
'1.0',
|
||||
true
|
||||
);
|
||||
}
|
||||
// Diese Funktion wird mit einer höheren Priorität (20) ausgeführt,
|
||||
// also NACHDEM das Parent Theme sein Skript geladen hat.
|
||||
add_action( 'wp_enqueue_scripts', 'child_theme_swap_faq_script', 20 );
|
||||
|
||||
<?php
|
||||
|
||||
// Exit if accessed directly.
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* =============================================================================
|
||||
* HAUPTFUNKTION: Stylesheets korrekt laden
|
||||
* =============================================================================
|
||||
*
|
||||
* Diese Funktion lädt das Stylesheet des Parents zuerst.
|
||||
* Danach wird das Stylesheet des Childs geladen.
|
||||
* So können CSS-Regeln im Child Theme das Parent Theme gezielt überschreiben.
|
||||
*/
|
||||
function minecraft_modern_child_enqueue_styles() {
|
||||
// 1. Das Stylesheet des Parent Themes laden
|
||||
// get_template_directory_uri() zeigt auf den Ordner des Parent Themes.
|
||||
// Der Handle 'minecraft-modern-style' sollte exakt dem im Parent übereinstimmen.
|
||||
$parent_style = 'minecraft-modern-style';
|
||||
|
||||
wp_enqueue_style(
|
||||
$parent_style,
|
||||
get_template_directory_uri() . '/style.css',
|
||||
array(),
|
||||
wp_get_theme( get_template() )->get( 'Version' ) // WICHTIG: Wir nutzen die Version des Parents
|
||||
);
|
||||
|
||||
// 2. Das Stylesheet des Child Themes laden
|
||||
// get_stylesheet_directory_uri() zeigt auf den Ordner des Child Themes.
|
||||
// Die Abhängigkeit 'parent-style' stellt sicher, dass es NACH dem Parent geladen wird.
|
||||
wp_enqueue_style(
|
||||
'minecraft-modern-child-style',
|
||||
get_stylesheet_directory_uri() . '/style.css',
|
||||
array( $parent_style ),
|
||||
wp_get_theme()->get( 'Version' ) // Die Version des Childs (für Cache-Reset)
|
||||
);
|
||||
}
|
||||
add_action( 'wp_enqueue_scripts', 'minecraft_modern_child_enqueue_styles' );
|
||||
|
||||
|
||||
/**
|
||||
* =============================================================================
|
||||
* (OPTIONAL) Beispiel: Ein Skript des Parent Themes überschreiben
|
||||
* =============================================================================
|
||||
*
|
||||
* Falls du die Logik des Sliders (z.B. die slider-init.js) im Child Theme
|
||||
* anpassen möchtest, könntest du diese Technik nutzen.
|
||||
* Dies ist NUR NOTWENDIG, wenn du Änderungen am JavaScript des Sliders vornehmen willst.
|
||||
*
|
||||
* Um dies zu aktivieren, entferne die Slashs (/) am Anfang und Ende dieses Blocks.
|
||||
*/
|
||||
/*
|
||||
function minecraft_modern_child_swap_faq_script() {
|
||||
// Entfernt das Skript, das vom Parent Theme mit dem Handle 'faq-accordion-script' registriert wurde.
|
||||
wp_deregister_script( 'faq-accordion-script' );
|
||||
|
||||
// Lädt dein neues Skript aus dem Child Theme.
|
||||
// Wir verwenden denselben Namen ('Handle'), um WordPress klar zu machen,
|
||||
// dass dieses Skript das Original ersetzt.
|
||||
wp_enqueue_script(
|
||||
'faq-accordion-script', // Derselbe Handle wie im Parent Theme
|
||||
get_stylesheet_directory_uri() . '/js/faq-accordion.js', // Pfad zur neuen JS-Datei im Child Theme
|
||||
array( 'jquery' ), // Abhängigkeiten (hier jQuery)
|
||||
'1.0', // Version deines Skripts
|
||||
true // Im Footer laden
|
||||
);
|
||||
}
|
||||
// Diese Funktion wird mit einer höheren Priorität (20) ausgeführt,
|
||||
// also NACHDEM das Parent Theme sein Skript geladen hat.
|
||||
add_action( 'wp_enqueue_scripts', 'minecraft_modern_child_swap_faq_script', 20 );
|
||||
*/
|
||||
?>
|
||||
Reference in New Issue
Block a user