Hallo,
welchen Code hast du benutzt?
Die gängigste Methode um Funktionen aus dem parent ins child zu bekommen, wäre mit ! function_exists oder per remove action und add action, wenn es sich um eine action handelt. (https://code.tutsplus.com/tutorials/a-guide-to-overriding-parent-theme-functions-in-your-child-theme–cms-22623)
Dazu müsste man den Code näher betrachten.
PS: Du benutzt da ein plugin um PHP Code einzuschleussen? Benutze dafür ausschließlich das ChildTheme , so meine Empfehlung.
Im Theme Responsive ist die Funktion responsive_get_social_icons()
leider nicht pluggable (d.h. es wird nicht mit if( ! function_exists() )
abgefragt, ob die Funktion bereits in einem Child Theme existiert) und wird auch leider nicht mit einem Hook per add_action()
eingebunden. Du kannst aber das Template footer.php
so ändern, dass eine andere Funktion aufgerufen wird.
Statt
<div class="grid col-380 fit">
<?php echo responsive_get_social_icons() ?>
</div><!-- end of col-380 fit -->
rufst du z.B. eine eigene Funktion auf:
<div class="grid col-380 fit">
<?php echo rene_get_social_icons() ?>
</div><!-- end of col-380 fit -->
Den Funktionsnamen verwendest du dann in der functions.php
des Child-Themes.
Die Empfehlung von @espiat, für eigenen PHP-Code kein Plugin zu verwenden, kann ich nicht ganz nachvollziehen. Vielleicht mag er dazu noch etwas schreiben? Aber wenn du ohnehin ein Child Theme anlegen musst, um das Template auszutauschen, wäre es tatsächlich Unfug, zusätzlich ein Plugin zu erstellen.
@radarin Was ist denn an dem Theme-Namen irreführend? Das Theme ist im besten Sinne des Erfinders responsive.
Danke für Eure Hintergrundinformationen. Dann liegts also am Theme. Ich hab das Snippet Plugin installiert um nicht ständig an die ‚function.php‘ ran zu müssen.
Wie geschrieben, hab ich kurzerhand den Funktionsnamen im Child geändert. Das funktioniert.
Betreffend responsive:
So schaut es auf dem iPhone aus.
in Luft aufgelöst, also nochmals.
Das ist nicht das übliche Verhalten des Themes, lässt sich aber nur anhand des Screenshots nicht beurteilen.
Es liegt offensichtlich am Child, das Parent funktioniert einwandrei. Liegt möglicherweise daran, dass die functions.php
des Child leer ist. Der wesentliche Teil des <head> wird über eine Funktion generiert. Da wird weiterhin
<link rel='stylesheet' id='responsive-style-css' href='http://www.restaurant-waespi.ch/wp-content/themes/responsive/core/css/style.css?ver=3.8' type='text/css' media='all' />
geladen. Anschliessend lade ich die Selbe, modifizierte Datei nochmals aus dem Child. Entferne ich die Datei aus dem Parent besteht der Fehler weiterhin, entferne ich sie aus dem Child ist der Fehler weg. Also muss der Fehler in der style.css
des Child entstehen. Dass dies an meinen Anpassungen liegen soll, kann ich nicht nachvollziehen. Es gibt auch noch eine responsive.css
welche ausschliesslich im Parent existiert.
Wenn ich den Original-Inhalt aus dem Parent ins Child übernehme, besteht der Fehler weiterhin. Das Selbe CSS aus dem Parent scheint sich anders zu verhalten wie wenn ich es aus dem Cild lade. Das Ganze wird immer mysteriöser. Hat es ev. damit zu tun, dass ich in der function.php
kein CSS abmelde?
-
Diese Antwort wurde geändert vor 6 Jahren, 4 Monaten von radarin.
-
Diese Antwort wurde geändert vor 6 Jahren, 4 Monaten von radarin.
-
Diese Antwort wurde geändert vor 6 Jahren, 4 Monaten von radarin.
-
Diese Antwort wurde geändert vor 6 Jahren, 4 Monaten von radarin.
Du hast einen Fehler im Child Theme, kannst aber nicht nachvollziehen, dass der Fehler von deinen Anpassungen kommt? Wer hat denn das Child Theme geschrieben?
Die functions.php
deines Child Theme ist leer? Wie erstellst du denn dann überhaupt ein Child Theme?
Vielleicht magst du nochmal nachlesen, wie es richtig geht?
Mit der ursprünglichen Frage hat das allerdings nichts mehr zu tun, oder?
soll ich einen neuen Thread machen?
Ich hab das Child auf dem üblichen Weg erstellt. Einzig das wp_deregister_style( '???');
erfolgt nicht, weil ich in der `function.php‘ des Parent nichts passendes gefunden habe.
soll ich einen neuen Thread machen?
Wenn du eine konkrete Frage hast, ja.
Ich hab das Child auf dem üblichen Weg erstellt.
Dann ist die functions.php
(übrigens Plural) auch nicht leer.
Einzig das wp_deregister_style( '???');
erfolgt nicht, weil ich in der function.php
des Parent nichts passendes gefunden habe.
Das Stylesheet des Parent Theme wird in Zeile 300 ff. der functions.php
eingebunden.
Ich beende das Ganze hier mal, da das eigentliche Thema ja gelöst ist.
Zur Vollständigkeit zum aktuellen Stand:
Als ich das Child erstellt habe, ist mir nicht aufgefallen, dass es da noch eine weitere functions.php gibt. Sehr übersichtlich sowas. Wie auch immer. Da ich aber mein angepasstes CSS in der header.php NACH dem Originalen geladen habe, kann man sich von mir aus streiten ob das über die functions.php gelöst werden soll.
In der Anleitung steht, erstellen sie eine leere functions.php. Den nächsten Schritt hab ich einfach weggelassen, somit blieb die Datei leer.
Da der Fehler aber in der neuen CSS Datei zu suchen ist, ist es nebensächlich, wie die Dateien in der richtigen Reihenfolge geladen werden. Da ich absolut keine Vorstellung habe, welche Änderung sich so auf die mobile Darstellung auswirkt wird es wohl darauf hinauslaufen, nochmals das Original rein kopieren und die Änderungen nochmals vornehmen, und dabei auf Desktop und Mobile die Auswirkungen laufend prüfen.
Jedenfalls vielen Dank für Eure Hilfe und Tips!
Gruss René