Gibt es eine schnelle Möglichkeit, Inline-CSS aus allen Posts zu entfernen?

Ich habe 40 WordPress Seiten mit jeweils 20-30 Seiten. Die meisten von ihnen haben ein Inline-CSS, wie

in jedem einzelnen Absatz.

Gibt es eine schnelle, meist automatisierte Möglichkeit, alle diese Inline-CSS auf einmal zu entfernen? Selbst wenn man durch all diese Seiten und Beiträge klickt, wird es ein Dorn im Auge sein; Ich möchte nicht mehr als 3-4 Klicks pro Seite ausgeben, um diese Zeilen zu entfernen.

Ich weiß, dass ich das Stylesheet !important , aber das ist nicht genug – ich muss diese CSS-Zeilen komplett entfernen.

Solutions Collecting From Web of "Gibt es eine schnelle Möglichkeit, Inline-CSS aus allen Posts zu entfernen?"

Es gibt einige Möglichkeiten, wie ich damit umgehen kann:

  1. Mach es einmal für alle aktuellen Posts
  2. Mach es zur Laufzeit, bevor Beiträge the_content (entweder durch Filtern the_content oder mit jQuery)
  3. Mach es mit important! in deinem CSS – wie du erwähnt hast

Jede Methode ist eine legitime Möglichkeit, dies anzugehen, und jede trägt Vor- und Nachteile.

Ich nehme normalerweise Option 3, weil es der einfachste Weg ist, sicherzustellen, dass Post-Inhalt, der von woanders kopiert wird, immer so aussieht, wie das Thema es aussehen lässt. Ich setze das CSS auf genau den Container, in dem der Post-Inhalt sein wird, und überschreibe einfach jene Eigenschaften, die die größten Probleme verursachen – normalerweise font-size , text-align , font-family und dergleichen – mit einem Wert von inherit !important so funktioniert es nur als das beabsichtigte Thema.

In Ihrem Fall haben Sie bereits gesagt, dass das nicht geschnitten wird. Ich nehme an, dies liegt daran, dass es eine breite Palette von CSS-Regeln gibt, mit denen Sie es zu tun haben, und jede CSS-Eigenschaft aufzulisten, die dem Menschen bekannt ist, ist viel zu schwerfällig.

In diesem Fall hängen die anderen beiden Optionen von Ihrem Ziel ab: Möchten Sie nur die aktuellen Beiträge anpassen und keine zukünftigen Beiträge beeinflussen, die möglicherweise auf der Website eingefügt werden, oder möchten Sie die Beiträge nicht wirklich berühren? per se aber nur ändern, wie sie angezeigt werden – was bedeutet, dass zukünftige Posts auch “repariert” werden?

Wenn Sie dies einmal für alle aktuellen Posts tun, können Sie eine direkte SQL-Abfrage für Ihre database ausführen. Das Analysieren von HTML und das Treffen automatisierter Entscheidungen kann gefährlich sein. Ich denke, der sicherste Weg wäre ein Suchen-Ersetzen in Ihrer wp_posts Tabelle, wo Sie einfach nur style=" with data-style=" ersetzen. Das ist immer noch gültig HTML5; Es wird nicht als Stilattribut gelesen. und es gibt sehr wenig Chance, dass Sie etwas vermasseln, das Sie nicht wollten (es sei denn natürlich, Sie haben Beiträge mit Code-Beispielen?).

Es gibt viele Möglichkeiten, in Ihrer database eine Suche zu ersetzen. Ich würde vorschlagen, search-replace Befehl search-replace von wp-cli zu verwenden :

 wp search-replace ' style="' ' data-style="' wp_posts --include-columns=post_content 

Sie müssen wp-cli installiert haben, um dies zu tun, Installationsanweisungen sind hier (nebenbei, wenn Sie unter Windows sind und Probleme haben, den statementen zu folgen, lassen Sie mich in den Kommentaren wissen und vielleicht könnte ich ein Q & A machen auf diesem).

Dies kann zur Laufzeit vor dem Anzeigen von Posts mit dem Filter ” the_content geschehen, und ich the_content mich wahrscheinlich ähnlich wie oben beschrieben aus denselben Gründen an, weil Sie nicht versehentlich etwas ersetzen wollen, das Sie brauchen. Etwas wie das:

 add_filter( 'the_content', function( $content ){ return str_replace( ' style="', ' data-style="', $content); }); 

Schließlich, wenn Sie Beiträge mit Code-Beispielen in ihnen haben – oder Sie wollen nur absolut sicher sein, dass Sie nur das ersetzen, was Sie wirklich wollen, würde ich wahrscheinlich darauf zurückgreifen, jQuery auf der Seite zu verwenden. Nie die netteste Art, mit Inhalten umzugehen, wenn man es serverseitig machen könnte, aber ich erwähne es aus Gründen der Vollständigkeit:

 jQuery( '.your_post_content_wrapper *' ).attr( 'style', '');