Nicht alle automatischen Ersetzungen des Textes im WordPress-Editor sind sinnvoll oder gewollt. Meiner Meinung nach gehört die automatische Ersetzung des einfachen Bindestrichs mit dem Gedankenstrich dazu. Das Problem dabei ist, dass der Editor im Visuellen Modus immer noch den Bindestrich ausspuckt aber innerhalb der sichtbaren Seite ein Gedankenstrich zu sehen ist.
WordPress hat intern für die Optimierung des Inhalts einen Filter-Hook the_content. Dieser Hook greift nachdem der Inhalt aus der Datenbank geholt wurde und bevor er ins HTML z.B. über die the_content() Funktion geschrieben wird.
Automatische Ersetzung für den Inhalts-Hook entfernen
Im WordPress sind standardmäßig die Funktionen wpautop und wptexturize auf den the_content Hook registriert. Für die automatische Ersetzung des Bindestrichs ist die wptexturize-Funktion verantwortlich. Der Aufruf kann für den Inhalts-Hook in der functions.php über folgende Quellcodezeile deregistriert werden.
remove_filter('the_content', 'wptexturize');
Damit sind jedoch alle automatischen Inhaltsoptimierungen dieser Funktion dahin.
Automatische Ersetzung für weitere Hooks entfernen
Neben dem Inhalts-Hook ist die wptexturize-Funktion auch auf dem Title-Hook und dem Excerpt-Hook registriert und kann deregistriert werden.
remove_filter('the_title', 'wptexturize'); remove_filter('the_excerpt', 'wptexturize');