Support » Allgemeine Fragen » formatting.php im Child Theme

  • Gelöst initiumit

    (@initiumit)


    Guten Tag,

    ich habe ein Childtheme erstellt für meine Seite in der ich die formatting.php bearbeitet habe, die unter wp-includes/formatting.php liegt.

    Diese liegt bei mir unter child-theme/includes/formatting.php.

    Leider greift diese nicht und ich finde einfach keine Lösung. Kann es daran liegen, dass diese Datei von WP direkt kommt und nicht von meinem Theme?

    Danke

Ansicht von 9 Antworten - 1 bis 9 (von insgesamt 9)
  • Ich fürchte, hier liegt ein Missverständnis vor, was ein Child Theme leisten soll: Child Themes sind Ergänzungen zu einem vorhandenen Theme (das dann Parent-Theme genannt wird).

    Nehmen wir an, du hast im Parent Theme ein Template page.php für die Ausgaben statischer Seiten und du möchtest nun auf jeder Seite oberhalb des Inhalts den Text-String „Hello Dolly!“ ausgeben. In diesem Fall kannst du das Template page.php in dein Child-Theme kopieren und dort den Text-String einfügen. Der Vorteil dieser Vorgehensweise ist, dass du klar abgrenzen kannst, welcher Code von dir stammt (hier das Template page.php) und deine Änderungen beim nächsten Update des (Parent-)Theme nicht überschrieben werden.

    Das Verzeichnis wp-includes gehört aber zum WordPress-Core und die Funktionen dieser Dateien kannst du eigentlich nicht mit einem Template in einem Child-Theme ändern. Die Entwickler haben allerdings in den allermeisten Dateien Programmierschnittstellen, so genannte Hooks, eingebaut, über die du auch in einem Theme oder Plugin Anpassungen vornehmen kannst. Nur überschreibst du dazu nicht die .php-Datei, sondern fügst in der functions.php eine Funktion (add_action( 'name_des_hook', 'name_deiner_function' );) ein.

    Vielleicht magst du mal erzählen, was du eigentlich ändern möchtest und gibst uns eine URL zu der Webseite auf der du die Änderung vornehmen möchtest?

    Thread-Starter initiumit

    (@initiumit)

    Hallo Bego,

    vielen Danke für die flinke Antwort.
    Ja das dachte ich mir bereits schon. Das mit den Hooks wäre dann ein gute Lösung für mich.

    in der wp-includes/formatting.php möchte ich die function wp_strip_all_tagsabändern sodass ich im admin bereich html tags in den Beiträgen verwenden kann.

    
    function wp_strip_all_tags( $string, $remove_breaks = false ) {
    	$string = preg_replace( '@<(script|style)[^>]*?>.*?</\\1>@si', '', $string );
      //$string = strip_tags( $string );
    
    	if ( $remove_breaks ) {
    		$string = preg_replace( '/[\r\n\t ]+/', ' ', $string );
    	}
    
    	return  $string;
    }
    

    Durch auskommentieren des strip_tags aufrufs gelingt mir das hier. Vielleicht gibt es eine elegantere Lösung?

    Vielen Dank

    Dazu brauchst du keine Änderung am Code vornehmen. Du kannst im Block-Editor einen HTML-Block einsetzen und dort beliebiges HTML einfügen:

    Screenshot Block-Editor mit HTML-Block

    Thread-Starter initiumit

    (@initiumit)

    Ja diese Option haben wir verwendet und die html tags werden trotzdem gefiltert.

    Ich weiß auch nicht ob es erst möglich ist seit der Einführung der „Blöcken“ dort HTML zu verwenden, allerdings wie gesagt funktioniert es nicht. Lediglich durch Äderung im Code werden die Beiträge so übernommen wie im HTML deklariert.

    Es geht hier unteranderem um die News auf der Startseite. https://karlsruher-pass.de/

    … und die html tags werden trotzdem gefiltert.

    Was meinst du damit? Geht es um eingefügtes JavaScript?
    Das kannst du auf anderen Wegen einfügen. Eine gute Beschreibung findest du hier:
    https://www.wpbeginner.com/wp-tutorials/how-to-easily-add-javascript-in-wordpress-pages-or-posts/

    Es geht hier unteranderem um die News auf der Startseite.

    Das ist mir zu ungenau – um was geht es da konkret? Was hast du wo eingefügt? Wie sollte es aussehen? Was passiert stattdessen?

    Thread-Starter initiumit

    (@initiumit)

    Nein hier habe ich kein js verwendet.

    Ich erstelle einen Beitrag ganz normal über das Adminpanel und wähle dabei HTML aus. Folgenden Text füge ich dort ein und setze mein entsprechendes Beitragsbild.
    Hier werden Überschriften und Bilder gesetzt.

    Ein Beispieltext:

    
    <p>Auf dem Bruchsaler Weihnachtsmarkt zeigt die Unternehmerin Ingrid Alt ein Herz gegen Armut. Nach der Einführung des Bruchsaler Kinder- und Jugendpasses ist Ingrid Alt die erste, die sich unternehmerisch sozial engagiert. Damit alle Familien den Weihnachtsmarkt genießen können, zahlen Kinder und Jugendliche mit Kinder- und Jugendpass der Sozialregion an den Ständen mit dem roten Herz für eine Bratwurst im Brötchen, eine Portion Pommes oder einen alkoholfreien Punsch je 1 €.</p>
    <p><img class="wp-image-2377 blogicon alignright" src="https://karlsruher-pass.de/wp-content/uploads/2017/08/Freizeit-2.png" alt="" width="70" height="70" /></p>
    <h6>Ingrid Alt</h6>
    <p>Weihnachtsmarkt<br />Bruchsal</p>
    

    Der Beitrag sollte wie folgt aussehen:

    View post on imgur.com

    Und so sieht der Beitrag aus, wenn ich die strip_all benutze die von WP kommt:

    View post on imgur.com

    Es werden die html tags(img, h* etc.) aus dem Beitragstext rausgefiltert und genau das möchte ich nicht haben.

    Die Startseite zeigt deine Beiträge als Auszug (englisch Excerpt) an – vergleichbar mit den Aufmachern in Nachrichten-Portalen wie Spiegel Online und normalerweise mit einem „weiterlesen …“-Link, in dem dann der vollständige Beitrag angezeigt wird. Bei Auszügen wird in WordPress immer die Formatierung und HTML-Elemente wie Bilder entfernt.

    Die einfachste Lösung wäre, im Customizer anzugeben, dass die Beiträge auf der Startseite als vollständiger Beitrag und nicht nur als Auszug ausgegeben werden. Ich weiß nicht, ob euer gekauftes Theme dazu einen Einstellung anbietet. Falls nicht, könntest du versuchen, die Funktionalität von Auszügen zu ändern. Dazu gibt es verschiedene Plugins, z.B. Advanced Excerpt.

    Thread-Starter initiumit

    (@initiumit)

    Vielen Dank!

    Leider hat es mit Advanced Excerpt nicht funktioniert. Allerdings mit Easy Custom Auto Excerpt!

    Vielen Dank nochmal und ein schönes Wochenende
    Nico Gensheimer

    Schön, dass du eine Lösung gefunden hast. Ich markiere den Thread dann mal als „gelöst“.

Ansicht von 9 Antworten - 1 bis 9 (von insgesamt 9)
  • Das Thema „formatting.php im Child Theme“ ist für neue Antworten geschlossen.