Things Are Broken!
More likely than not, your WordPress theme is using an improper function to set the title attribute of your heading’s link. It is probably using the the_title()
function, which delivers the post title after filtering. It should be using the_title_attribute()
which delivers the post title before filtering. Change out this function throughout your theme when it is used inside of an HTML tag, and the problem should go away.
Here are some specific instructions for fixing your theme. Please note that every theme is different, so mileage may vary.
To edit the theme, log in as an administrator and go to: Appearance > Editor
. You will typically want to edit the following files (if they exist):
archive.php
index.php
page.php
search.php
single.php
In each file, search for the code that looks something like this:
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>;"><?php the_title(); ?></a></h2>
Your theme may contain some variations. For instance, the h2
tags may be h1
or h3
… We are looking specifically for the part that says title=" … <?php the_title(); ?> … "
. It should be changed to:
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
Save the files, and you should be good to go.
If you are uncomfortable editing your theme’s code, you may alternatively go to the wp-Typography settings page in your admin panel and add h1
and h2
to the “Do not process the content of these HTML elements:” field. This will disable typographic processing within improperly designed page title links and page titles.
wp-Typography does not have access to HTML stored in your theme files. It only has access to the content passed to it (i.e. post title and content); it is unable to determine the greater contextual awareness.
If you try to filter processing based on a class of the body element — as an example — nothing will happen. wp-Typography does not see the body element. wp-Typography does filter by HTML element, class or ID for any markup present within the parsed content. So if you do not want class noTypo
processed, filtering will only occur within the title or content of your post or page.
This plugin offers an option to wrap initial quotes in a span of class quo
or dquo
. You can then style these classes in your CSS stylesheet. This is useful if you want to-for example-negatively indent quotes so the quote hangs in the left margin and the text is aligned with the text below.
Please note, this applies only to initial quotes — quotemarks that appear as the first character of a block of text (like a paragraph or blockquote). This does not apply to all opening quotes.
There is a bug in the shipped Safari 9 that results in strange characters being rendered when both ligatures and soft hyphens appear on the same line. (The bug is only triggered when the font actually supports ligatures, e.g. with Open Sans.)
Fortunately, adding the following line to your CSS fixes the font rendering and preserves ligatures:
-webkit-font-feature-settings: "liga"; font-feature-settings: "liga";
If you enable Add workaround for Safari hyphenation bug
, this CSS property is inserted into your page automatically.
Please install the wp-Typography Disable ACF Integration plugin by @sarukku. Alternatively, you can also directly use the filter hook typo_disable_filtering
in your functions.php
.
Hyphenation Generally
This plugin includes hyphenation patterns for over 50 languages. Please make sure your website’s primary language is selected. wp-Typography preferences can be set in the WordPress admin section under Settings > wp-Typography
.
Recent browser versions support the hyphens
CSS property to enable hyphenation. If you want to the finer control over hyphenation that wp-Typography offers, make sure that the your theme stylesheet does not contain
hyphens: auto;
(or one of its vendor-prefixed variants like -webkit-hyphens
). If you can’t remove the property from the theme’s stylesheet, make sure to add
hyphens: manual;
in a child theme stylesheet or wp-Typography’s injected CSS. (Don’t forget the vendor-prefixed variations!)
wp-Typography has multi-language support. Pattern libraries are included for:
- Afrikaans,
- Armenian,
- Assamese,
- Basque,
- Belarusian,
- Bengali,
- Bulgarian,
- Catalan,
- Chinese Pinyin (Latin),
- Church Slavonic,
- Croatian,
- Czech,
- Danish,
- Dutch,
- English (United Kingdom),
- English (United States),
- Esperanto,
- Estonian,
- Finnish,
- French,
- Friulan,
- Galician,
- Georgian,
- German,
- German (Traditional),
- Greek (Ancient),
- Greek (Modern Monotonic),
- Greek (Modern Polytonic),
- Gujarati,
- Hindi,
- Hungarian,
- Icelandic,
- Indonesian,
- Interlingua,
- Irish,
- Italian,
- Latin,
- Latin (Classical),
- Latin (Liturgical),
- Latvian,
- Lithuanian,
- Kannada,
- Kurmanji,
- Malayalam,
- Marathi,
- Mongolian (Cyrillic),
- Norwegian,
- Norwegian (Bokmål),
- Norwegian (Nynorsk),
- Occitan,
- Oriya,
- Panjabi,
- Piedmontese,
- Polish,
- Portuguese,
- Romanian,
- Romansh,
- Russian,
- Sanskrit,
- Serbian (Cyrillic),
- Serbocroatian (Cyrillic),
- Serbocroatian (Latin),
- Slovak,
- Slovenian,
- Spanish,
- Swedish,
- Tamil,
- Telugu,
- Thai,
- Turkish,
- Turkmen,
- Ukrainian,
- Upper Sorbian, and
- Welsh.
Hyphenation increases the visual appeal of your website. When justifying text without hyphenation, word spacing is distractingly large. With left-aligned text, the right edge will be unnecessarily ragged.
The soft-hyphen is an invisible character that communicates to web browsers allowable line breaks within words. When a web browser wraps a line at a soft-hyphen, a hyphen is shown at line’s end.
Similar to the soft-hyphen, the zero-space character communicates allowable line breaks within strings of text. But unlike the soft-hyphen, it does not show a hyphen at line’s end. This is ideal for forcing consistent wrapping of long URLs. It also can be used to force line breaks in uncooperative web browsers after hard-hyphens in words like “zero-space” and “soft-hyphen”.
Starting with Internet Explorer 6, Firefox 3, Safari 2, and Opera 8, all major web browsers have offered full support for online hyphenation.
It depends on the search engine. Google and Yahoo properly handle the soft-hyphen character. Microsoft and Ask improperly treat soft-hyphens as word breaks. Fortunately, Google and Yahoo comprise more than 90% of the search market.
Because WordPress search queries the database — and hyphenation is not stored to the database-local search is not affected.
Yes. The administrative panel for wp-Typography includes an editable exceptions list.
The hyphenation algorithm used by wp-Typography is based on the 1983 Stanford Ph.D. thesis of professor Frank Liang: Word Hy-phen-a-tion by Com-puter. In this thesis, Dr. Liang also developed an English (United States) pattern file for use with his algorithm. Liang’s English pattern file was updated in 1991 by Peter Breitenlohner.
The resulting algorithm — with the English (United States) patterns — finds 90% of all allowed hyphenation points identified in the Webster’s Unabridged Dictionary with a 0% error rate. Patterns for many additional languages have been developed by others and vary in quality.
Features
A widow is the final word in a block of text that falls to its own line. Especially if the widow is only a few characters long, she can get lonely. wp-Typography will try to protect widows by bringing them company from the previous line.
There is danger that the widow’s company will leave the previous line with less than optimal word spacing. The risk is less if your text is left-aligned, but if it is justified, tread carefully. The protection of widows is completely customizable in the administrative options.
No. The general philosophy of this plugin is to enable functionality that is otherwise unavailable using standards-based web design. Drop caps can be implemented using CSS. Here is an example:
/* drop cap */ .mainContent > .header + p:first-letter { /* assumes paragraph line-height is 20px and font-size is 14px */ display: block; float: left; margin: 0 2px 0 0; padding: 6px 0 0; /* for Firefox: (line-height - font-size) */ font-size: 70px; /* (3.5 * line-height) */ line-height: 49px; /* for Safari: (3 * line-height - 11px) */ text-transform: uppercase; vertical-align: top; }
Class names and dimensions will need to be adjusted to your specific application.
Performance
Maybe. For best performance, use a persistent object cache plugin like WP Redis.
There are a few reasons:
- If I processed at the time of saving a post, the changes are destructive. This means:
- If people to back to edit their work, there will be a multitude of hidden characters that will interfere with their efforts
- Spell check would be broken (in browsers like Firefox)
- If you disable the plugin, the changes are still hardcoded, and will not go away.
- Changes would only apply to posts saved after the plugin was enabled (not on previous posts, since they have already been saved, and thus would not trigger the typographic filtering).
- Settings would not be editable-since previous filtering is stored in the database, if you turned off hyphenation, that would only apply to new posts saved.
- For most installations, caching resolves performance issues.
But to be honest, the biggest reason is if there is a bug in my code, I don’t want to be responsible for destroying data in the thousands of websites that use this plugin. If something goes wrong, they can just turn it off — no damage done.
Other Questions
Perhaps. wp-Typography uses a derivative of hyphenation patterns developed for the TeX platform. Here is a collection of many of the available TeX hyphenation pattern files. You will need to find a file for the language you wish to address. Next, look in the source code for wp-Typography at /php-Typography/lang_unformatted/template.txt
, the specific needs of language specific hyphenation patterns for this plugin, and how to convert them from the original TeX patterns are detailed there. If a TeX pattern does not exist, I suppose you could create one, but I don’t know where to direct you.
Yes. In fact, We have done most of the work for you. I have separated all of the core functionality of wp-Typography into a stand-alone project—PHP Typography—that is easily ported to any other PHP-based content management system. There is also a Composer package.
No. We don’t want your money. If you want to show your support, we would greatly appreciate a link to mundschenk.at from your website — perhaps with a nice review of this plugin. We would also greatly appreciate a 5‑star rating for this plugin in the WordPress Plugin Directory.
This list of frequently asked questions has been adapted from the original wp-Typography FAQ by KINGdesk. You are free to share and adapt it under the terms of the CC BY-NC-SA 3.0 license. See the original license grant for further details.
Hey there.
Cooles PlugIn. Ich würde es lieben, wenn es denn funzen würde.
Ich nutze die neuste WordPress-Installation mit einem Theme von Themeforest, das Bluebird heisst. Ich benutze das Wordfence PlugIn, bei welchem ich aber das Caching abgestellt habe.
Egal was ich also einstelle, ich sehe leider keine Veränderung in den Texten bzw. den Trennungen. An was kann’s liegen?
So genau kann ich das blind natürlich auch nicht sagen, aber falls es um http://urs.to geht, dann liegt es bzgl. Silbentrennung vermutlich an der
-moz-hyphens
-Eigenschaft. Die gehört raus oder aufmanual
gesetzt (und die Silbentrennung durch wp-Typography natürlich aktiviert). Die CSS-Hooks für Abkürzungen usw. sind nämlich eh aktiv, wie ich gesehen habe.Töröööö! That worked like a charm! Danke Dir, Küchenmeister!
Hallo! Lässt sich die Filterung für andere Inhalte als the_content aktivieren? Konkret würde ich gerne auch mittels Advanced Custom Fields ausgegebenen Texte durch wp-typography verschönern lassen. Danke im Voraus, Wolf-Dieter
Wolf-Dieter: Derzeit gibt es leider keine wirklich saubere Lösung, um die wp-Typography-Filter auf beliebige Strings anzuwenden. Es gibt dazu allerdings schon einen Issue-Eintrag auf GitHub und in der nächsten Version wird es eine entsprechende API geben.
English version: Unfortunately, there is currently no clean way to apply the wp-Typography filters onto arbitrary strings. However, an issue has already been created on GitHub and the next version of wp-Typography will include an API for theme & plugin developers.
Ich habe das mittlerweile mit einer Änderung an class-wp-typography.php gelöst:
if ( ! is_admin() ) {
…
add_filter(‘acf/load_value/type=wysiwyg’, array( $this, ‘process’ ), $this->filter_priority );
}
Danke für das super Plugin!
Hallo,
ich benutze das Plugin wp-Typography sehr gerne. Die Silbentrennung funktioniert. Leider, eine Zeit lang war alles in Ordnung, zeigen meine Texte in in dem Safari — Browser seltsame Zeichen, wie auch in diesem Moment Ihre Webseite an dieser Stelle. Wörter scheinen überschrieben zu sein von weiteren Zeichen. Kann ich etwas tun, um diesen Effekt zu verhindern?
beste Grüße
Louis
Eigentlich ist ein Workaround für diesen Safari-Bug eingebaut. Ich nehme an, der Fehler tritt nach der Installation von 10.11.4 auf? Offenbar hört Safari nicht mehr auf
-webkit-font-feature-settings
, sondern will jetztfont-feature-settings
. Das ist ärgerlich, denn der zugrundliegende Rendering-Bug wurde nicht behoben und die allgemeinere CSS-Eigenschaft betrifft ja nicht nur Safari (bzw. Webkit-Browser). *seufz*Safari wurde heute auf die Version 9.1 (10601.5.17.4) aktualisiert. Zuvor, also gestern noch, war alles in Ordnung. Ist dieses von Dir beschriebene Problem lösbar?
Manuell
font-feature-settings: "liga", "dlig";
in den Stylesheet einfügen.… das werd ich versuchen! Herzlichen Dank!
@louis: Ich habe jetzt doch gleich eine neue Version gebaut 🙂
English version: I’ve tagged a new release to fix the Safari font rendering bug workaround not functioning on Safari 9.1 (released with Mac OS X 10.11.4 today) anymore.
… nach update auf Typography Version 3.2.2 wieder korrekte Zeichenwiedergabe über Safari. 🙂
@ Danke! ich freu mich sehr!
Hey guys,
I’m having a compatibility problem with WP-Typograpyhy and Semplice (semplicelabs.com).
When I activate the plugin the portfolio grid breaks.
Screenshot: https://infinit.io/_/UbKVBQn.png
I’ve tried to replace all the ‘the_title()’ that I found to ‘the_title_attribute()’, but it didn’t fix the problem.
I’ve talked to Semplice Support and they said that they’re using get_the_title() to show the post title.
I would like to use your plugin but if it makes so much compatibility problems I can’t.
@Flávio: I tried contacting you via mail, since diagnosing the cause for the breakage is difficult without access to other theme/plugin (or at least a working demo site).
Is it possible to use this plugin to render all the glyphs of a font? I am using the Doves type, which has quite a few glyphs, and would like to render them on my blog whenever they apply. I am new to these advanced features of web typography so any guidance would be appreciated. (I couldn’t find anything useful in the plugin settings.)
Thanks
@Kejda: I’m not sure what exactly you mean by “render all the glyphs”? Basically that is something between your web font and the browser and can only partially be controlled via the
font-feature-settings
CSS property. In general, wp-Typography does not mess with that property (the Safari ligature bug workaround being the sole exception).PS: If you are just looking for so-called “discretionary ligatures” (which are quite beautiful in Dove Type), add
"dlig"
to yourfont-feature-settings
.Hallo, erstmal vielen Dank für das tolle Plugin. Leider habe ich ein Funktions-Problem. Die Silbentrennung und die anderen schmucken Dinge funktionieren auf der Start- und den Archiv-Seiten einwandfrei. In den Beitrags-Seiten jedoch nicht. Woran könnte das liegen?
@Anton: Möglicherweise ein aktivierter Page Cache? Schwer zu sagen ohne Link.
Oh, sorry, geht um diese Seite … http://www.neustadt-ticker.de … Page Cache gibt’s nicht.
@Anton: Welches Theme wird dort verwendet? Müßte mir den Code im Detail anschauen.
https://themes.bavotasan.com/themes/magazine-basic-wordpress-theme/
@Anton: Leider konnte ich den Fehler mit dem Theme nicht nachstellen. Der nächste Schritt wäre es, alle Plugins außer wp-Typography zu deaktivieren und zu schauen, ob der Fehler immer noch auftritt. Falls ja, bräuchte ich genauere Informationen zum Hosting (PHP-Version etc.). Falls nein, alle Plugins einzeln aktivieren und schauen, bei welchem dann der Fehler wieder erscheint. Dann kann ich mir die Interaktion genauer ansehen.
Danke. Ich hab es. Es liegt am YARP …
Yet Another Related Posts Plugin
Hab es deaktiviert. Jetzt geht es. Danke für Deine Mühe.
@Anton: Danke für die Rückmeldung. Vielleicht läßt sich in einer der nächsten Version da was machen.
Hallo, kann man irgendwo einstellen, dass nur z.B. max. 2 Umbrüche hintereinander in einem Fließtext erscheinen sollen. Momentan habe ich einen Absatz, wo jedes Wort am Zeilenende getrennt wird, das sieht etwas seltsam aus.
Ich hab schon versucht bei den Settings die Zahl hoch zu setzen bei “Wörter mit weniger als X Buchstaben nicht trennen.” — das hilft leider auch nicht.
Danke!
Mandy
@Mandy: Um welche Website geht es? Im Prinzip kann es nur am eingeschaltenen Caching oder an der CSS-Eigenschaft
hyphens
liegen. In neueren WordPress-Themes steht die meist aufauto
(siehe FAQ).Hallo,
Was ich der Plugin-Beschreibung nicht entnehmen konnte: Gibt es eine Möglichkeit, die für die Silbentrennung verwendete Sprache für einzelne Absätze, jedes Posting einzeln oder in Abhängigkeit von der Zugehörigkeit zu einer Kategorie festzulegen? (Wenn nicht: Läßt sich dies in naher Zukunft realisieren?)
Ohne diese Funktionalität ist die Nutzung der Trennung beim Vorhalten mehrsprachiger Texte (als Bestandteile eines einzelnen Postings oder aufgeteilt in Einzel-Postings)… “schwierig”.
Vielen Dank im Voraus!
@Markus: Eine automatische Lösung gibt es aktuell nicht, programmatisch kann aber die Sprache bei manuellen Aufrufen umgesetzt werden (allerdings momentan eher umständlich über ändern der Optionen).
Die Problematik an sich ist bekannt, allerdings aufgrund der verwendeten WordPress-Mechanismen (
apply_filter
) nicht einfach zu lösen. Was vergleichsweise einfach zu realisieren wäre, ist eine Berücksichtigung eines allenfalls gesetztenlang
-Attributs für einzelne DOM-Elemente bzw. deren Kinder. Für Fragmente, die nicht über ein Elternelement mitlang
-Attribut verfügen, wüßte ich aktuell allerdings keinen Lösungsweg. Vorschläge dazu bitte am besten im Github-Tracker.Hallo Mundschenk!
Ganz herzlichen Dank für dieses Plugin, funktioniert in der Regel allerbestens. Heute allerdings kämpfe ich mit einem Problem. Bei einer Webseite funktionieren plötzlich die Umbrüche auf in den Posts nicht mehr ( ist nicht enthalten). Auf der Blog-Seite mit Auszügen der Posts und auf Seiten (Pages) wird weiter hübsch getrennt. Woran kann das liegen?
Zusatzfrage:
Ich habe in den Einstellungen unter Allgemein die HTML-Elemente meta und link hinzugefügt. Trotzdem erscheinen dort Trennzeichen.
Gibt es eine Möglichkeit, Trennung an diesen Stellen zu verhinden?
@Markus:
Meinst Du die Silbentrennung? Wenn das seit dem Update auf 3.5.2 auftritt, dann liegt es daran, daß ein Template nicht-wohlgeformten HTML-Code erzeugt. Bis jetzt hat der Parser das stillschweigend korrigiert. Weil es dabei aber zu Problemen mit den immer häufiger verwendeten Page-Buildern à la Visual Composer gekommen ist, führen Parsing-Fehler seit dieser Version dazu, daß der keine Änderungen am Fragment vorgenommen werden.
Bzgl. der Unterdrückung der Silbentrennung in bestimmten Bereichen: Dazu müßte man das Theme entsprechend anpassen und die Trennung nachträglich filtern. wp-Typography weiß an der aufgerufenen Stelle nicht, daß es gerade den Inhalt eines
<meta>
-Tags bearbeitet, daher funktioniert das Ausnehmen der Elemente nicht. Bei Gelegenheit werde ich mir aber anschauen, ob es vielleicht entsprechende WordPress-Filter gibt, die man dafür benützen könnte.Danke für die schnelle Antwort! Ich setze das WP-Typography Plugin auf drei Webseiten ein, alle mit demselben Template. Silbentrennung funktioniert prima. Bis auf eine Webseite (siehe Link). Dort funktioniert die Trennung nicht mehr bei Posts, sehr wohl aber bei Pages und auf der Blogseite.
Wann war das Update auf 3.5.2.? Unter “Changes” finde ich nur 3.5.1. Page-Builder nutze ich nicht.
Zur Zusatzfrage: könnte nicht der gesamte
Bereich von der Silbentrennung ausgenommen werden?
Viele Grüße
Hallo. Hab’s gefunden. Das Problem kam durch ein Lazy-Load-Plugin (a3 Lazy Load). Die Einstellung “Noscript Support” verursacht einen HTML-Fehler: Bad value for attribute srcset on element img: Must contain one or more image candidate strings. Ohne den Fehler werden Silben wieder schön getrennt.
Danke für den Hinweis. Und das großartige Plugin.
P.S. Wenn möglich, bitte den head-Bereich von der Silbentrennung ausnehmen.
@Markus: Hab die Updates jetzt im hiesigen Changelog nachgetragen. Leider verlier ich bei den verschiedenen Listen (WordPress.org vs. hier) manchmal die Übersicht 😉
Das mit dem
<head>
-Bereich schau ich mir noch an.I have just installed version 3.5.3. It is active, it has the previous settings, but it does not work any more! Even after clearing cache, deactivating and reactivating etc. I also checked several browsers, and that mbstring is active on the PHP 5.6 version of my host…
@Bernard: Your HTML is probably not valid. Since version 3.5.2, non-well-formed input will not be processed anymore to prevent problems with page builders and such (previously, the parser silently guessed what the invalid HTML should really be).
It is true that my HTML is invalid, as many errors show up on https://html5.validator.nu/?doc=https%3A%2F%2Flebonheurestpossible.org%2Fje-suis-a-lhopital%2F&showimagereport=yes&showsource=yes
However, since the code is entirely generated by WordPress and the Times template, I have no other choice than trying to revert to wp-typography version 3.5.1. How can I revert?
@Bernard: You can download previous versions of the plugin from the WordPress plugin repository. However, it’s probably easier if I add a filter you can use in your
functions.php
to enable the previous lenient behaviour of the parser. Would that help your situation?Yes, this would be most convenient! Thank you in advance.
@Bernard: Version 3.6.0 will contain the new filter hook. It will be released later tonight or tomorrow.
I installed version 3.6.0 but I don’t know how to set up the ‘typo_ignore_parser_errors’ hook in functions.php.
@Bernard: Add
add_filter( 'typo_ignore_parser_errors', '__return_true' );
to thefunctions.php
of your (child) theme.The “add_filter()” did not work. For the time being I am using again version 3.5.1…
You may have to clear the cache (from the wp-Typography settings page) after adding the filter.
I did clear the cache several times on the settings page, save the settings and even deactivated/reactivated the plugin… Strangely with no result!
It finally worked after inserting the add_filter() in functions.php of the parent TIMES theme instead of the child theme. This problem is probably specific of this theme.
Hallo,
das Plugin funktioniert schon lange bei mir sehr gut. Nun habe ich eine mehrsprachige WP-Site gebaut. (Wie) Kann ich die Typografie für jede Sprache einstellen?
Viele Grüße
@Wolf: Mit welchem System? Ist jede Sprache eine eigene Site eines Multisite-Netzwerks? In dem Fall kann man jeweils die Einstellungen manuell vornehmen. Falls die verschiedenen Sprachinhalte alle in einer Site integriert sind (mit welchem Plugin?), müßte man sich aktuell selbst einen Sprachumschalter für wp-Typography schreiben. Die aktuelle Version bringt mit dem
Settings
-Objekt die wichtigsten Voraussetzungen auf technischer Ebene mit, aber eine fertige Umsetzung gibt es nicht.Hallo,
ich habe die beiden Sprachfassungen mit dem plugin “Polylang” erstellt — was sehr gut und sehr einfach funktionierte.
Viele Grüße
@Wolf: Danke, ich werd mir das bei Gelegenheit anschauen. Wird allerdings sicher etwas dauern, kurzfristig bleibt also nur die Variante „selbser stricken“. Von der API her sollte das jetzt machbar sein.
Hallo,
im Moment funktioniert WP-Typography (4.1.1) nicht auf meinem lokalen Server (MAMP, PHP 7.0.9, Windows 8.1 aktuelle Fassung) aber auf meinem externen Server. Den “üblichen” Fehlerquellen habe ich bereits nachgespürt. — Was kann ich übersehen haben?
Viele Grüße
Ergänzung
“funktioniert … nicht” ist vielleicht falsch ausgedrückt: Mir fällt oberflächlich gesehen auf, dass statt der Guillemets inch-Zeichen erscheinen und die Gedankenstriche zu kurz sind.
Wolf: Was mir spontan als Ursache einfällt: Ein Theme oder Plugin produziert ungültigen HTML-Code und die Option zum Ignorieren von Parser-Fehlern ist deaktiviert.
Danke! Es war die nicht aktivierte Option zum Ignorieren von Parser-Fehlern. Obwohl ich das als mögliche Fehlerquelle bereits gelesen hatte, habe ich es nicht gesehen, dass es es nicht aktiviert war.
Latest version is breaking our site. We get just a blank page, even after we updated to the latest wordpress version (4.8) and the latest theme version (Enfold 4.0.7 by Kriesi). We now went back to version 4.1.2 and everything works fine.
Have you tried clearing the opcode cache/restarting php-fpm? What’s the error message in your PHP log?
Thanks for the mail. It worked again by replacing that one line as you described it here: https://github.com/mundschenk-at/wp-typography/issues/127
Hallo!
1) Ich nutze das Plugin “Shariff Wrapper”. Bei aktivierter Silbentrennung verschickt Shariff Emails mit Silbentrennzeichen im Betreff. Shariff nutz (so weit ich das sehe) “get_the_title()”. Ein Ersatz mit “the_title_attribute()” scheint keine Änderung zur Folge zu haben. Ich habe mir jetzt erstmal mit der Deaktivierung der Trennung bei Titeln beholfen und mache diese stattdessen über CSS (hyphens: auto). Was mich zur nächsten Frage bringt:
2) Was sind denn die Vorteile der Silbentrennung durch wp-Typography gegenüber CSS (besonders wenn noch “Bedingte Trennstriche beim Kopieren in die Zwischenablage entfernen” durch Javascript aktiviert ist)?
freundliche Grüße,
Martin
@Martin: Der Hinweis auf
the_title_attribute
bezieht sich auf hinzugefügte HTML-Tags (wie z.B.<span class="number">
bei Zahlen) – die Funktion filtert einfach alle Tags nachträglich heraus (nicht aber Entities wie­
). Um alle Trennstellen zu entfernen, müßte der Wert durch einen Filter analog der Funktionprocess_title_parts
gejagt werden.Was die Unterschiede zwischen der PHP-gesteuerten Silbentrennung durch wp-Typography und
hyphens: auto
anlangt, so gibt es zwei Aspekte. Zum einen wurde dieses Feature zu einem Zeitpunkt entwickelt, als noch kein Browser die CSS-Eigenschafthyphens
unterstützt hat. Zum anderen läßt sich die Ausgabe überhyphens
nicht näher steuern, während es bei wp-Typography weitgehende Eingriffsmöglichkeiten in den Algorithmus gibt (und z.B. auch die alte Rechtschreibung unterstützt wird).Hallo lieber Küchenmeister,
was für ein geniales Werk! Endlich sauberer Satz und kein Augenschmerz mehr!
Sagenhaftes PlugIn! Wieso ist das nicht Standard in WordPress? Dort war die Lösung die Blocksatz Funktion aus dem Editor rauszuschmeißen (z.T. zu Recht), aber Blocksatz mit WP-Typography — ein Gedicht!
Und dann auch noch Feinschmecker und Meister der Küche! Interessante Kombi! Stelle mit sonst den Coder als kalte-Pizza-aus-der-Pappschachtel-Fresser vor.
Wie ist das nun mit WP-Typography und einer mehrsprachigen Website mit qTranslate‑X? Geht da was?
Liebe Grüße
Peter
@Peter Wolf: Danke für die Blumen 🙂
Bzgl. mehrsprachigen Sites gibt es aktuell leider keine out-of-the-box-Lösung. Die zugrundeliegende API erlaubt es, die Einstellungen programmatisch anzupassen und dann auf die Seiteninhalte anzuwenden. Damit könnte man, entsprechende PHP-Kenntnisse vorausgesetzt, das jeweilige Mehrsprachigkeits-Plugin an sich relativ einfach integrieren.
Leider habe ich keine Erfahrungen mit diesen Plugins, weshalb es bis jetzt noch keine Integration gibt. Ich arbeite derzeit allerdings an Version 5.0.0, die einige Änderungen an der API mitbringen wird, da habe ich auch schon ein paar Ideen, wie man die Integration solcher Plugins erleichtern kann. Eventuell komme ich dann auch dazu, eine Fertiglösung in wp-Typography selbst zu implementieren. Wann diese Version erscheinen wird, kann ich allerdings noch nicht in Aussicht stellen, es sind noch relativ viele Baustellen offen.
@Peter Wolf: Nur ein kurzes Update: wp-Typography 5.0.0 unterstützt jetzt auch mehrsprachige Websites (die Funktion muß in den Einstellungen aktiviert sein). Mit qTranslate‑X hab ich’s nicht getestest, aber da Polylang, WPML und MultilingualPress funktionieren, nehme ich an, daß es auch damit paßt.
Hab schon die Benachrichtigung für das Update bekommen.
Grandios! Es funktioniert!
Ich bin dermaßen begeistert!
Und das funktioniert besser als es InDesign und Illustrator können, meine ich.
Danke!
klingt vielversprechend!
Viel Erfolg und gutes Gelingen und danke für das schnelle Feedback!
Hallo,
wenn ich das (übrigens echt tolle!) Plugin von 4.2.2 auf 5.0.4 aktualisiere, wird WordPress geradezu absurd langsam. Downgrade ich wieder auf 4.2.2, ist es wieder schnell. Als Caching-Plugin kommt Cachify zum Einsatz, zudem nutze ich u. a. Polylang. Irgendeine Idee, wo ich ansetzen soll?
Vielen Dank,
Tim
@Tim: Puh, ein paar Leute haben so etwas ähnliches berichetet (wobei die zum Teil schon mit 4.2.2 diese Probleme hatten), das sollte ein Fix in 5.0.4 aber zumindest zum Großteil behoben haben. Läßt sich aus PHP- oder Datenbank-Logs eruieren, ob irgendwelche Ressourcenkonflikte auftreten?
Cachify enthält keinen Object-Cache, ist also diesbezüglich für die wp-Typography-Performance nicht optimal. Allerdings sollte das grundsätzlich keinen großen Unterschied zwischen 4.2.2 und 5.0.x ausmachen. Welche PHP-Version ist im Einsatz? Die Architektur des zugrundeliegendne PHP-Typography ist in Version 5 stark überarbeitet worden, es sollte dadurch aber eigentlich eher schneller geworden sein.
Wie viele Sprachen sind im aktiven Einsatz? Ist die Polylang-Unterstützung in wp-Typography aktiviert? Wenn das sehr viele sind (und es Sprachdateien dafür gibt) könnt es sein, daß der Aufbau oder das Laden der Trennungsregeln zu viele Ressourcen benötigt.
Am besten wäre eine Trace-Datei (mit der xdebug.profiler-Extension), aber dazu müßte man die PHP-Konfiguration entsprechend anpassen, das ist schon ein tricky.
Moin,
ich habe PHP 7.0 und 7.1 probiert. Die Polylang-Unterstützung habe ich ebenfalls testweise ein- und ausgeschaltet (tolles Feature, darauf habe ich echt gewartet!). Es gibt nur zwei Sprachen (de_DE, en_US). Das “Autooptimize”-Plugin ist übrigens ebenfalls installiert – hat jemand Erfahrungen mit der Kombination?
Das klingt alles irgendwie so, als sollte ich mir nächste Woche mal die Zeit nehmen, meine Testumgebung zu aktualisieren und das nachzustellen und ggf. zu tracen … ich melde mich dann, wenn ich ein Trace habe.
Danke! 🙂
PHP 7.x sollte eigentelich wunderbar passen und ziemlich schnell sein. Autooptimize kannte ich bis jetzt nicht, von der Funktionsweise sollte es allerdings kein Problem geben (und jedenfalls wenn keinen relevanten Unterschied zwischen 4.2.2 und 5.0.4).
Da müssen wir dann leider wirklich auf den Trace warten, ich sehe sonst (außer es sind in der php-error.log Fehlermeldungen zu finden) keinen Ansatzpunkt momentan. 🙁
In meiner Test-Umgebung kann ich das Problem nicht reproduzieren. Interessant ist: In der Produktionsumgebung ist typo_cache_keys rund 185000 Zeichen groß, in der Test-Umgebung knapp 6000. Ich glaube, da hat sich etwas angesammelt, was sich nicht hätten ansammeln sollen ;-). Falls dem so ist: Wie werde ich das los?
OK, das ist offenkundig der Cache. Ich ziehe die Frage zurück 😉 und versuche weiter, das Problem nachzustellen.
Ich arbeite gerade eine einem neuen Caching-System für 5.2.0, das ohne
typo_cache_keys
auskommt. Ein weiteres Performance-Problem liegt im Caching der Silbentrennungs-Tries. Das funktioniert über die Datenbank suboptimal, weil der gespeicherte String sehr groß wird. Ich habe vor, das in der nächsten Version durchgzcompress
zu umgehen. Damit geht zwar etwas Zeitverlust durch den Funktionsaufruf und die Komprimierung einher, aber der Verzicht auf Datenbank-Queries mit mehreren Megabyte sollte das wettmachen 😉Es gelingt mir leider nicht, das Problem in einer anderen Umgebung (identische Versionen WordPress und allen Plugins, weitgehend identische PHP-Version) nachzustellen. In der produktiven Umgebung habe ich Ladezeiten von 100 Sekunden (!) mit der 5.0.4 gegenüber 6 Sekunden mit der 4.2.2. Deaktiviere ich nur die Silbentrennung, habe ich sofort wieder normale Ladezeiten. In der produktiven Umgebung kann ich nicht sinnvoll tracen (shared hosting). Das “Query Monitor”-Plugin zeigt keinerlei Auffälligkeiten und behauptet (ebenso wie Cachify) steif und fest, die Seite sei nach etwa 2,3 Sekunden fertig erstellt gewesen. Was (außer einem Trace 🙁 ) kann ich denn noch an hilfreichen Informationen sammeln?
Insgesamt liest sich das Problem übrigens ziemlich wie das weiter unten von Lethert erwähnte.
Ich bin mir ziemlich sicher, daß es am Caching der Trie-Datenstruktur für die Silbentrennung liegt. Da kommt durch die Eigenheiten der PHP-Serialisierung ein ziemlich langer String (unkomprimiert > 7 MB für
de
) zustande. Das ist kein Problem bei einem Objekt-Cache mitmemcached
oderredis
als Backend, aber sehr wohl beim Schreiben in die Datenbank (was ja für Transienten die Standardeinstellung ist ohne Objekt-Cache). Leider läßt sich das PHP-Caching in 5.0.4 nicht nur für dasHyphenator_Cache
-Objekt ausschalten 🙁die Version 4.2.2 war perfekt. Bei der der Version 5.0.4 musste ich die Silbentrennung komplett ausschalten.
Das Plugin bremst die WebSite bis zur 500er Fehlermeldung aus. Teils werden WebSeiten erst nach 3 — 4 x F5 angezeigt. Unabhängig vom Browser. BrowserCaches gleöscht. Getestet mit Fox, Chrome, IE, Edge.
OHNE Silbentrennung funktioniert alles schnell und gut. Mit nicht mehr zu gebrauchen.
PHP ist 7.0, eigener WebServer.
Theme ist ElegantThemes DIVI.
5.0.4 deinstalliert, die 4.2.2 wieder installiert.
Nun läuft es wieder super schnell…
Welche PHP-Version? Mit oder ohne Object Cache? Versuch einmal, das PHP-Caching durch
add_filter('typo_php_typography_caching_enabled', __return_false );
in der
function.php
des Themes zu deaktivieren.Mit auf diese Weise deaktiviertem PHP-Caching habe ich mit 5.0.4 vergleichsweise normale Performance.
Sorry für die später Antwort.
Ich habe den Object Cache wie angegeben deaktiviert, nun “rennt” auch die Version 5.0.4!
Danke für die Unterstützung!
I would like to hyphenate the contents of the new HTML widget. Is there a possibility to do this?
@René: Using ‘add_filter( ‘widget_custom_html_content’, array( ‘WP_Typography’, ‘filter’ ) );‘ in your ‘functions.php‘ should work, but I haven’t tested this yet.
Funny coincidence, I just looked today for a solution for exact the same problem.
I used your suggestion with WP4.9 and I can confirm, that it had worked in my case.
Thank you for this wunderful plugin!
@Oliver: War die Anfrage via Kontaktformular gerade von Dir? Leider sehe ich aufgrund eine Bugs die Absenderadresse nicht.
Hallo,
ich bin mir nicht ganz sicher, ob wir das Problem nicht irgendwann schon einmal hatten: Wenn wp-typography aktiv ist, kann ich keine Links mehr in Vergleichszeichen einschließen. Das “öffnende” Kleiner-als-Zeichen wird “geschluckt”, nur das hinter dem Link schließende Größer-als-Zeichen “überlebt”. Das passiert auch, wenn wp-typography das einzige aktive Plugin ist (WordPress 4.9.2, Theme “Catch Box” 4.7.4). Irgendeine Idee?
Vielen Dank,
Tim.
@Tim: Ich bin mir nicht ganz sicher, ob ich das Anliegen richtig verstehe, geht es um so etwas?
<https://example.org>
Genau darum geht es – das “öffnende” Kleiner-als-Zeichen wird dann (zumindest bei mir) “verschluckt”, sobald das Plugin aktiv ist.
@Tim: Die < und > sind aber als < und &> codiert, oder? Sonst wäre das kein gültiges HTML und es es sehr wahrscheinlich, daß schon der Parser die Zeichen schluckt.
Die Zeichen sind korrekt als HTML-Entities kodiert, ja. Mal schauen, ob das hier korrekt ´rüberkommt:
Test <http://die-computermaler.de> testend.
wird zuTest http://die-computermaler.de> testend.
.OK, die Darstellung ist nicht hilfreich … Ich schreibe das nochmal, vielleicht wird das deutlicher ;-): Im ersteren Code steht
<<a href=...
, das<
wird dann komplett unterschlagen und es verbleibt<a href=...
.Ich habe gerade mal ein wenig Debug-Code in class-wp-typography.php eingefügt: Bei
process()
kommt das<
in$text
noch an, am Ende in$processed_text
ist es weg.Ich werd’s mir ansehen. Eine Vermutung, warum das passiert, hab ich schon.
@Tim: Welche Einstellungen sind für smart quotes aktiviert?
OK, der Fehler lag doch ganz wo anders. Behoben in 5.2.2.
Perfekt! 🙂 Vielen Dank!
Hi Peter,
der Chef wollte, dass ich die Überschriften des Editors klickbar mache. Das hat in der 5.2.1 auch geklappt, wenn ich die Ersetzung für Typographische Anführungszeichen ausgeschaltet hatte. In der 5.2.2 verhagelt es mir jetzt den Titel, da steht dann der komplette Hyperlink im Klartext der Seite.
Kann ich das irgendwie besser machen? Ausnahmen für a h1 h2 h3 h4 h5 h6 habe ich gesetzt, <a> hat leider auch nicht geholfen.
SiteOrigin Vantage Theme mit Page Builder
@Augschburger: Ich melde mich per Mail, bin mir nicht ganz sicher, ob ich das Szenario richtig verstehe.
Vielen Dank (erneut) für das tolle Plugin! Ich hätte da noch einen “Verbesserungs-Wunsch” ;-). Folgen primäres und sekundäres Zitat-Zeichen direkt aufeinander (“ ‘Zitat im Zitat’ im eigentlichen Zitat” oder andersrum “Eigentliches Zitat mit einem ‘Zitat im Zitat‘”) sollte vielleicht zwischen den beiden Zitat-Zeichen ein gesperrtes (dünnes?) Leerzeichen eingefügt werden. Das letzte Beispiel von Regel D12 im Duden (https://www.duden.de/sprachwissen/rechtschreibregeln/anfuehrungszeichen) legt das nahe – und es sieht m. E. auch viel besser aus. Wenn ich das einfach manuell einfüge, wird das initiale Zitat-Zeichen automatisch von einem öffnendem zu einem schließenden Anführungszeichen – im Artikel-Quellcode geht es also wohl nicht.
@Tim: Ich schaue einmal, ob ich in der Literatur etwas dazu finde. Das Duden-Beispiel allein ohne Text dazu ist mir ein bißchen zu unsicher.
@Tim: Werde ein entsprechendes Feature in PHP-Typography einbauen. Zumindest für das Englische habe ich entsprechende typographische Literatur gefunden. Bis die entsprechende Einstellung in wp-Typography aufschlägt, kann es aber ein bißchen dauern.
Das ist toll – danke! Ich bin gespannt!
Seit dem Update von 5.2.2 auf 5.2.3 werden im Adminbereich nur noch weiße Seiten angezeigt.
Gibts schon eine Lösung?
@Achim: Gibt es in den Logfiles eine Fehlermeldung? Ist das Plugin vorher problemlos gelaufen? Betroffen ist nämlich nur Code, der eigentlich gar nicht ausgeführt wird, wenn alles glattläuft. Evt. müßte der OpCache geleert werden?
Hier noch die fehlerhafte Zeile 203:
require dirname( $this->plugin_file ) . ‘/partials/requirements-error-notice.php’;
Hier noch die Fehlermeldungen:
Warning: require(/var/www/media-and-me.de/wp-content/plugins/wp-typography/partials/requirements-error-notice.php): failed to open stream: No such file or directory in /var/www/media-and-me.de/wp-content/plugins/wp-typography/vendor/mundschenk-at/check-wp-requirements/class-mundschenk-wp-requirements.php on line 203
Fatal error: require(): Failed opening required ‘/var/www/media-and-me.de/wp-content/plugins/wp-typography/partials/requirements-error-notice.php’ (include_path=’.:/usr/share/php:/usr/share/pear’) in /var/www/media-and-me.de/wp-content/plugins/wp-typography/vendor/mundschenk-at/check-wp-requirements/class-mundschenk-wp-requirements.php on line 203
@Achim: Oops. Da sind zwei Dinge zusammengekommen, tut mir leid. Ich habe die Prüfung auf fehlende Voraussetzungen (PHP-Version,
mbstring
-Extension, UTF‑8 als Charset) in eine eigene Komponente ausgelagert (vorher Teil des Plugins). Bei dieser fehlt im Build aber eine Datei, außerdem greift sie auf einen falschen Pfad zu. 🙁Aktuell kann ich nur ein manuelles Downgrade auf 5.2.2 vorschlagen, heute abend wird es eine fehlerbereinigte Version geben. Alternativ würde es kurzfristig helfen, die Datei
wp-content/plugins/wp-typography/admin/partials/requirements-error-notice.php
nachwp-content/plugins/wp-typography/partials/requirements-error-notice.php
zu verschieben.Allerdings: Diese ganze Code-Pfad wird nur aufgerufen, wenn eine der Voraussetzungen nicht erfüllt ist (PHP 5.6,
mbstring
installiert, Blog-Charset UTF‑8). Da kann 5.2.2 eigentlich auch nicht gelaufen sein (halt ohne Whitescreen, dafür mit Admin-Notice).Ok, vielen Dank. werde die neue Version abwarten.
@Achim: Version 5.2.4 sollte das Problem nun beheben.
Danke, Problem gelöst.
Das Plugin lief vorher ohne Probleme.
Hi,
ich habe dein Plugin früher gerne verwendet, war immer tiptop! Nun bin ich auf ein neues Theme umgestiegen – Uncode von Themeforest – und dies scheint nicht mit dem Plugin kompatibel zu sein. Da ich aus der Schweiz bin habe ich fürs Plugin als WordPress Sprache «Deutsch» eingestellt, auch beim Plugin. Des weiteren habe ich die css hypens mit allen prefixes auf manual gestellt. Caching Tool ist keines installiert …
Hast du eine Idee an was es liegen könnte?
@Kaya: Welche Symptome zeigen sich denn?
Die Silbentrannung wird gar nicht aktiviert, bzw wird der Text nicht umbrochen. Zu sehen zum Beispiel hier: https://pappelhoefe.pincgestaltet.ch/
Ich vermute stark, daß der ‘the_content‘-Filter vom Theme nicht angewandt wird. Das ließe sich durch Bearbeiten der Templates und Anwendung der API-Funktionen beheben. Leider kann ich ohne Kenntnis des Theme-Codes keine detaillierteren Hinweise geben.
Eine kurze Google-Recherché zeigt, daß ähnliche Probleme offenbar öfter auftreten (das Theme folgt hier einfach nicht den WordPress-Standards), der Hersteller sich aber auf “wir können leider nicht zu allen Plugins kompatibel sein” zurückzieht.
Hm schade, ohne jegliche PHP Kenntnisse wird das für mich wohl schwierig … Ja, der Support vom Theme Anbieter ist leider sehr «bescheiden». Kennst du jemanden – oder bietest du solche Services an – der das Plugin z.b. via Thema Functions.php kompatibel machen würde?
@Kaya: Sorry für die lange Pause, hatte die letzte Antwort übersehen. Hast Du inzwischen jemand gefunden, der die Anpassungen machen konnte?
Ich habe dasselbe Problem wie Kaya. Mit dem Theme “Uncode” bringe ich das tolle Plugin nicht zum Laufen. Da unsere Seite sehr textlastig ist, wären wir um die Funktionalität von wp-Typography immens froh.
Vielen lieben Dank für jeden Tipp in dieser Sache.
@ Mario Kaiser: Ich habe damals vom Plugin Autoren super Service erhalten und er hat mir folgendes Code Snippet zur Verfügung gestellt. Kopiere die Zeilen in deine functions.php und dann hats bei mir damals funktioniert. habe dir das File auf meine Dropbox geladen:
https://www.dropbox.com/s/0y5c0em607l8yr4/wp-typography-html-buffering.php?dl=0
@Kaya: Wow, vielen lieben Dank! Es funktioniert!
In the Intelligent Character Replacement tab, I’m adding some custom word replacements to clean up some sloppy abbreviations and acronyms. If there’s a period (.) in either the word to replace or the replacement word, it gets ignored.
Is there a way to escape the periods so they can get processed?
@Greg: The smart diacritics code was not designed for this, but I see nothing that should prevent
.
from matching. You could try escaping with\
, but even if.
is interpreted as “any character” by the regular expression parser, it should match. Can you give an example replacement string that does not work?Would it be possible to activate hyphanation in mobile design only? As a compromise for the copy issue.
Looking forward to your answer. Thanks!
@Jan: Technically, there is no “mobile design”. Browser sniffing is possible, but would prevent page caching from working, so I would advise against it. However, I don’t think this is really an issue anymore (since the introduction of the JS-based workaround). Do you still run into this with the workaround enabled?
I am using Scott Reilly’s Extra Sentence Space (and I use Drop Cap Shortcode), and hoped WP-Typography also addressed sentence-separation. Is that it appearently does not due to implementation difficulties, or should it like the Drop Cap be done by other means? Certainly, Reilly’s solution is crude … but what else is there?
The explanation of filtering at page-load time is astute & helpful. I would have ‘discovered’ why — oops — the hard way!
@Ted: There’s no reason other than you are the first person to ask for this feature since I’ve taken over wp-Typography. Personally, I think this typographic convention is a typewriter-ism and pretty much dead (except for the Mueller report). But I’lll look at Scott’s plugin to see if such an optional fix can easily be integrated into wp-Typography (probably: yes). It might take some time, though.
Hallo Küchenmeister,
danke für das tolle Plugin, es löst so einige Probleme auf meinen Seiten.
Nun meine Frage:
Ich habe jetzt schon einige Einstellungen versucht, doch auf meinen Seiten wird das “&” immer so geschwungen angezeigt. Kann man dies deaktivieren? An dem & soll die Schriftart nicht geändert werden.
Gruß Björn
@Björn: Im Reiter “CSS-Klassen” das Häkchen bei “Et-Zeichen” entfernen.
Hallo,
das Plugin ist gut. Wir haben nur ein Problem. Unser Memory Speicher läuft ständig voll. Und verursacht dann entsprechende Fehlermeldung im Frontend. “ Fatal error: Allowed memory size of … /wp-typography/vendor/mundschenk-at/wp-data-storage/src/class-transients.php on line 128”
Wenn man 2 – 3x F5 drückt verschwindet die Meldung.
Wir nutzen keine Cache-Plugins, als Theme läuft DIVI. Und wenn ich in WordPress eingeloggt bin, kam die Fehlermeldung bisher auch noch nie.
Gibt es eine Möglichkeit das Problem zu beheben?
@René: Der OOM dürfte nicht ursächlich an wp-Typography liegen, dort tritt er lediglich auf. Wirklich beheben läßt sich das nur durch eine Erhöhung des zugeteilten Speicherwerts für PHP. Auf welchen Wert ist die Systemeinstellung
memory_limit
aktuell gesetzt?Hallo.
Das memory_limit aktuell ist bei 128MB. Mehr kann ich auch nicht zuweisen. Wie viel Speicher wäre denn optimal?
@René: 256 MB sollten ausreichen. Mehr schadet aber natürlich nie.
Hallo
Vielen Dank für dieses super Plugin! Tolle Arbeit!
Bei der Verwendung von Farb-Sections im Enfold Theme enthält “the_content” unter bestimmten Umständen nicht geschlossene HTML-Tags, welche zu einem späteren Zeitpunkt geschlossen werden. wp-Typography schliesst diese offenen Tags jedoch automatisch, was in diesen Fällen zu einem fehlerhaften Markup führt. Dabei spielt es keine Rolle, ob ich den betroffenen Elementen die noTypo-Klasse zuordne oder nicht. Auch das Deaktivieren von “Fehler im HTML-Code ignorieren.” brachte keine Veränderung.
Ich vermute, dass die Bereinigung durch den HTML5-Parser geschieht. Besteht die Möglichkeit, diese Bereinigung zu deaktivieren?
@Daniel: Leider nicht. Wenn “Fehler im HTML-Code ignorieren” deaktiviert ist, sollte bei Parser-Fehlern an sich der ursprüngliche HTML-Code zurückgegeben werden (ohne wp-Typography-Änderungen). Müßte mir das aber im Detail anschauen.
Was man machen könnte, ist den
the_content
von wp-Typography zu deaktivieren. Aber das gilt dann halt generell. Langfristig möchte ich für diese Fälle einen “full page mode” einführen, aber zur Implementierung bin ich bis jetzt noch nicht gekommen.Alles klar, vielen Dank für die Auskunft!
Ich habs nun so gelöst, dass ich den Content vor und nach der Verarbeitung durch wp-Typography vergleiche und allfällige automatisch geschlossene Tags wieder entferne.
Besteht die Möglichkeit, nur den “the_content” Filter zu deaktivieren? Aktuell deaktiviere ich mit typo_disable_filtering die ganze Filter-Gruppe “content”.
Mhm, man müßte nachträglich den Filter entfernen (mit
remove_filter
). Dazu muß man allerdings eine Referenz auf das konkrete Objekt haben und die verwendete Priorität wissen. Das Objekt bekommst Du mitWP_Typography::get_instance()
, die Prorität beträgt normalerweise (außer NextGEN Gallery ist installiert) 9999. Der Aufruf darf aber erst nach deminit
-Hook erfolgen (damit die Filter schon hinzugefügt worden sind).Grossartig! Hat einwandfrei funktioniert. Herzlichen Dank!
Hallo Küchenmeister, danke für deine tolle Arbeit!
Ich habe eine Frage zu ACF. Ich benutze das Katex Plugin, um mathematische Terme darzustellen. Leider werden nun Ausdrücke wie \Delta getrennt und von Katex nicht mehr erkannt.
Kann ich gennerell alle Ausdrücke, die mit einem Backslash beginnen von der Trennung ausnehmen?
Oder kann das stark veraltete Zusatzplugin dieses leisten?
Oder kann ich das mit sehr begrenzten PHP Kenntnissen selber hinkriegen?
Vielen Dank und viele Grüße aus Düsseldorf
Jürgen
@Jürgen: Die Frage ist, wo das Problem auftritt. Beim Rendern eines ACF-Feldes? Da würde wp-Typography Disable ACF Integration in der Tat helfen, da es die Integration mit ACF vollständig deaktiviert (ist aber nur eine Zeile Code, könnest Du also auch in Deine ‘functions.php‘o.ä. einfügen). Hast Du einen Link zu diesem Plugin für mich? Ich hatte vor einiger Zeit eine ähnliche Anfrage zu MathJAX im Forum, eventuell hilft auch die weiter?
Hallo Mundschenk,
Das Problem ist, dass Ausdrücke wie \Delta durch \Delta ersetzt werden. Diese kann Katex nicht interpretieren.
Hier ist der Link zum Plugin. Das funktioniert eigentlich richtig gut.
Vielen Dank
Das zweite Delta sollte etwa so aussehen Del(shy/)ta
Und hier ist der Link (sorry es ist noch früh)
https://wordpress.org/plugins/katex/
Hallo Jürgen! Ich habe jetzt ein bißchen mit KaTeX experimentiert, soweit ich das sehen kann, genügt es, die CSS-Klasse
katex-eq
zu den zu ignorierenden Klassen hinzuzufügen.Hallo Küchenmeister, gbt es einen Weg, die Einstellungen in WP-Typography zu exportieren oder irgendwo zu kopieren und einzufügen?
Gruß, Casrten
@Carsten: Momentan gibt es so ein Feature nicht, man müßte das
typo_configuration
-Array auswp_options
in die zweite Datenbank kopieren (was eher eine Operation am offenen Herzen ist). Ich habe aber auch schon darüber nachgedacht, eventuell gibt es in einer der nächsten Versionen einen entsprechenden Button (oder, noch etwas wahrschienlicher, einen WP-CLI-Befehl).Hallo Küchenmeister, gibt es Dein großartiges PlugIn auch als Javascript-Version für Nicht-Wordpress-Seiten wie z.B. Bootstrap-HTML-Seiten?
Gruß, Carsten
@Carsten: Eine framework-agnostische Variante gibt es als mundschenk-at/php-typography über Composer, aber auch diese Bibliothek basiert auf PHP. Eine JavaScript-Portierung gibt es derzeit nicht.
Danke! Von Composer verstehe ich allerdings nichts. Da meine Frage auf einfachere Webarchitektur mit schlankem FlatCMS abzielte, ist das mal nicht weiter wichtig.
Mit Gruß, Carsten
Bzgl. Flat-CMS: Es gab oder gibt eine Implementierung für Kirby, alle anderen mir bekannten Varianten sind für CMS mit MySQL-Backend.
Danke! Kirby ist sehr attraktiv.
Not sure if someone has already asked this, since I speak English. I did a PHP check on my site to see if it could be upgraded to PHP 7.3 and it returned this message:
FILE: ../wp-content/plugins/wp-typography/vendor-scoped/mundschenk-at/php-typography/src/class-strings.php
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
FOUND 1 ERROR AFFECTING 1 LINE
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
98 | ERROR | The function mb_str_split() is not present in PHP version 7.3 or earlier
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Due to this, it recommended I do not update. Is it okay to update, or will this be fixed in a future update?
Teri: That’s a false positive (because the check you ran apparently relies solely on string grepping). PHP 7.4 (a higher version than your intended upgrade target) adds a native
mb_str_split
function and the underlying library has been updated to use it if available. If not, another function is used instead.TLDR: Upgrading to PHP 7.3 will be fine.
Hi,
How can I change the hyphenation for a word combination? We do not want to wrap the following word: “Lern- und Sprachtherapie”.
How can we make this happen?
@Tobias: Sorry for the late reply. There is currently no way to add phrases containing space characters to the hyphenation exception list.
If you want to prevent hyphenation, you will need to wrap a span (or some other inline tag) with class “noTypo” around the phrase in the editor. If you also want to keep the whole phrase on the same line all the time, you’d have to insert non-breaking spaces in between manually.
Hallo1 Das Plugin ist super, vielen Dank für die tolle Arbeit. Mir ist aufgefallen, dass Fuß- und Zollzeichen [ ’ ” ] zwar durch typographisch korrekte Anführungszeichen ersetzt werden. In meinem Falle durch Guillemets »«. Leider bezieht sich das nur auf Fuß- und Zollzeichen, nicht auf andere typgrafisch korrekte Anführungszeichen, z. B. klassisch deutsch unten und oben. Lässt sich das mit dem Plugin auch umsetzen?
@René: Klar, das ist über den Einstellungsreiter “Intelligente Zeichenersetzung” festlegbar.
Ich weiß, das funktioniert auch. Was nicht funktioniert: Anführungszeichen unten und oben werden nicht in Guillemets umgesetzt. Ich muss dann alle korrekten Anführungszeichen durch “” ersetzen, damit die Intelligente Zeichenersetzung funktioniert.
Ah, dann habe ich das Anliegen mißverstanden. Nein, bestehende “Sonderzeichen” im Content werden bewußt nicht ersetzt, damit Autor:innen entsprechende Gestaltungsmöglichkeiten haben (z.B. für Zitate). Es wäre auch gar nicht leicht, das sauber hinzubekommen, quote matching ist auch für
"
und'
schon diffizil genug.Hallo,
was passiert nach der Installation mit bereits bestehendem Text auf der Website?
Greift das Plugin auf bestehende Texte ein und ändert durch Silbentrennung usw. die Formatierung bisheriger Texte?
Oder gilt das erst für Texte, welche nach Installation geschrieben werden?
@Hannes: wp-Typography agiert als Filter, d.h. der Text in der Datenbank wird nie geändert, sondern nur die Ausgabe wird entsprechend der vorgenommenen Einstellungen angepaßt. Das bedeutet, daß auch bestehende Beiträge von wp-Typography profitieren.
DANKE für die rasche Antwort. Das bedeutet, ich kann zur Probe das WP-Typography downloaden, aktivieren und ausprobieren. Sollte es nicht passen, dann kann ich es wieder deinstallieren und die Website wird wie davor angezeigt? Sorry, falls die Frage blöd erscheint…bin ein WP-Newbie ;-): LG
@Hannes: Richtig.
DANKE für das tolle Plugin und den Support!
Hallo, nochmal ich 😉
Die Seite, die ich zu warten habe ist zweisprachig (DE & EN). Wenn ich die Anführungszeichen für Deutsch einstelle, dann zeigt es diese auch auf der englischen Seite so an. Lässt sich das wohl nicht gesondert einstellen, oder? Gibt es da eine Einstellung, die ich nicht gefunden habe, oder geht nur “entweder-oder” und nicht “sowohl-als auch”?
Danke & LG
@Hannes: Sorry für die späte Antwort, verwendest Du ein Plugin für die mehrsprachigen Seiten oder sind das einfach separate Beiträge? An sich gibt es eine Unterstützung für mehrsprachige SItes, das setzt aber eine Verwendung eines Plugins voraus, das das Locale jeweils richtig setzt (“Automatisches Umschalten zwischen mehreren Sprachen innerhalb einer Website ermöglichen.”).
Servus! 🙂
Zuerst einmal sag ich Danke zu diesem tollen Plugin. Es macht die Webseiten so viel eleganter. Was ich auch sehr schön finde, ist, dass bestimmte Zeichenkombis direkt richtig formatiert werden, m² z.B.
Dazu habe ich eine Frage, könnte man das mit dem Plugin auch regeln, dass aus CO2 automatisch ein CO₂ wird?
Danke & LG
@Manny: Ich werd mir einmal ansehen, ob CO2 in die Filter reinpassen würde. Wird aber sicher noch eine Weile dauern.
Ich möchte den bedingten Trennstrich in WordPress auf crescendo.de verwenden. Gibt es dafür ein Tastaturkürzel? Habe nun manuell in den Text geschrieben. Das löscht Guttenberg aber selbstständig. Oder liegt das an WP-Typhography? Was mache ich verkehrt?
@Winfried: Ein Tastenkürzel würde vom Betriebssystem abhängen, mir ist für den bedingten Trennstrich aber zumindest ad hoc keines bekannt. Durchaus möglich, daß Gutenberg das ausfiltert. WP-Typography sollte das nur unter bestimmten Umständen machen (z.B. für die letzten Wörter in Block-Elementen, wenn “Hurenkinder verhindern” eingeschaltet ist).
Taucht das Zeichen denn in der Datenbank auf?
@küchenmeister: Danke für Deine rasche Antwort. Nach längerem Forschen: Es war tatsächlich die Hurenkinder-Funktion, von WP-Typography die das Zeichen wieder rausgeparst hat…
@küchenmeister @winfried
Dieser Kommentar rettete meinen Tag. Bei schmalen Viewports werden Trennungen in Überschriften von langen Wörtern meistens zu Hurenkindern. An diese Einstellung habe ich nicht gedacht — und nach Deaktivieren von “Hurenkinder verhindern” funktioniert alles wie gewohnt.
Wäre natürlich toll, wenn die Hurenkindregelung nicht auf Überschriften angewendet werden könnte.
Im Übrigen ist das Plugin super ******* und wird von mir auf jeder Webseite eingesetzt. Danke an den Mundschenk dafür.
Moin,
merkwürdigerweise vergisst WP-Typography (als einziges meiner installierten Plugins) unter aktuellen WordPress- und PHP-Versionen alle paar Tage mal sämtliche Einstellungen. Das muss neu sein.
Woran kann das liegen?
@tuxor: Sorry für die verspätete Antwort, ich muß den Kommentar übersehen haben. Leider habe ich keine konkreten Ideen, woran das liegen (bzw. gelegen haben) könnte. Bei mir tritt das Problem auch mit PHP 8 nicht auf.
Ein tolles Plugin und ich bin sehr froh, dass es überhaupt sowas gibt (eigentlich unverständlich, dass WordPress dies nicht nativ unterstützt).
Nun habe ich für eine NGO eine neue Webseite in Planung (URL ist von der Testseite) und wollte diese mit einem Astra Theme umsetzen.
Klappt alles wunderbar, aber leider funktioniert die Silbentrennung nicht (vorallem im H1 Titel wäre dies notwendig).
Hat bereits jemand dieses Problem angetroffen?
@Marcello: Ich sehe auf der Seite tatsächlich gar keine Anzeichen, daß wp-Typography aktiv wäre. Allerdings sind in der Überschrift einige seltsame Trennzeichen (eine Reihe von Soft Hyphens und ein Zero-Width Non-Joiner) zwischen “Nachbarschafts” und “hilfe” eingefügt. Die stammen aber so sicher nicht von wp-Typography.
Ob die fehlenden Anpassungen an Astra liegen oder an den konkreten wp-Typography-Einstellungen, kann ich nicht sagen (vermutlich aber eher ersteres).
Danke für die Rückmeldung. Ich habe heute abend das plugin deaktiviert, da ich den Astra Support angeschrieben habe. Sobald ich da Antwort bekommen habe, werde ich den alten Zustand wieder herstellen und den Post aktualisieren.
Hallo Küchenmeister, ich habe nun das Plugin wieder aktiviert und dazu ein standard wordpress theme (twentyone) aktiviert. Auch damit funktioniert die Silbentrennung nicht.
https://butofupi2.butofupi.myhostpoint.ch/
Eine Idee, was das Problem sein könnte?
Schaut jetzt alles gut aus im Source-Code. Vmtl. ist “Hurenkinder verhindern” aktiviert, damit werden die Silbentrennungspunkte aus dem letzten Wort eines Blockelements wieder entfernt (nach gewissen Regeln, je nachdem, was eingestellt ist unter “Weißraum-Steuerung”).
Addendum: Der Zero-Width Non-Joiner bei “Nachbarschaftshilfe” ist möglicherweise bei einer C&P‑Aktion in den Inhalt gerutscht, der stammt ziemlich sicher nicht von wp-Typography (evt. soll er eine Ligatur zwischen “s” und “h” verhindern?).
Hallo, ich habe das Problem, das nach Aktivierung von wp-Typography die bei Elementor eingestellten benutzerdefinierten Zeichensätze nicht mehr genutzt werden. Die Seite wird mit einer Systemschrift angezeigt. Nach der Deaktivierung von wp-Typography stehen die Schriften wieder zur Verfügung.
@Marcus: Das hängt wohl davon ab, wie Elementor das genau macht (an sich gehört so etwas in die Stylesheets, nicht ins Markup). Im Detail müßte ich mir die Seite mit und ohne aktiviertem wp-Typography anschauen können (Frontend).
@Küchenmeister: Ich habe die Hurenkinder deaktiviert, leider kein Erfolg. Den Zerowith non joiner habe ich im Quellcode nicht gesehen. Noch eine Idee?
Naja, wenn er als literal eingebettet ist, sieht man ihn nicht ohne Dekodierung. Ich wette, wenn Du das Wort herauslöscht und manuell neu eintippst, ist er nach dem Speichern nicht mehr da (Caches ausräumen nicht vergessen!).
@Der Küchenmeister: Habe noch einen weiteren Test gemacht und auf der Seite “Jobangebote” den H1 Titel verlängert und siehe da, dort funktioniert der Umbruch korrekt. Komisch?
Caching.
OK, Moment, auf derselben Seite? Könnte trotzdem internes Caching irgendwo sein, aber eher nicht. Wenn ich’s mir so anschaue, verhindert evt. der ZWNJ die Silbentrennung des Wortes. Wie gesagt, lösch es heraus im Backend und tippe es neu ein (kein C&P).
@Der Küchenmeister: Tja, das wars! Habe den gesamten H1 Block auf der Homepage gelöscht und neu erfasst. Alles funktioniert.
Danke für die tolle Unterstützung.