WordPress erlaubt gewollt HTML-Tags im Titel eines Beitrags. Ist der Shariff Wrapper im Einsatz gibt es jedoch ein Problem. Der HTML-Tag wird mit ausgegeben, wenn der Beitrag zum Beispiel bei Twitter geteilt wird.
Um das zu verhindern habe ich mich mal im Code umgeschaut und bin auf folgende Zeile gestoßen:
// Ov3rfly: make atts configurable from outside, e.g. for language etc. $atts = apply_filters( 'shariff3UU_render_atts', $atts );
Über diesen Filter kann ich die Attribute des Plugins beeinflussen. Ich befürchte allerdings, dass dieser Filter nicht für eine Anpassung dieser Art gedacht ist, denn erst danach wird folgendes für den Titel definiert:
// share title if ( array_key_exists( 'title', $atts ) ) $share_title = urlencode( $atts['title'] ); else $share_title = urlencode( html_entity_decode( get_the_title(), ENT_COMPAT, 'UTF-8' ) );
Wenn ich also den Titel ohne HTML-Tags (per strip_tags) setzen möchte, dann muss ich $atts['title']
schon befüllen und die HTML-Entities decoden, aber nicht URL-encoden, da dies auch dann gemacht wird, wenn der Titel-Array-Key schon existiert.
Meine Lösung sieht daher wie folgt aus:
function shariff_filter_title( $atts ) { $atts['title'] = strip_tags( get_the_title() ); $atts['title'] = html_entity_decode( $atts['title'], ENT_COMPAT, 'UTF-8' ); return $atts; } add_filter( 'shariff3UU_render_atts', 'shariff_filter_title' );
Dieses Snippet gehört in die functions.php
eines (Child-)Themes oder in ein functionality-Plugin.
Ich werde diese Ergänzung auch noch als Issue bei Github einreichen, so dass diese Code vielleicht in Zukunft nicht mehr notwendig ist.
Habe ich was übersehen? Geht es einfacher? Ich freue mich über Kommentare.
Genial! Danke! Bin fast verzweifelt, weil ich ein „Subtitle“ Plug-in verwende und dadurch immer span tags im Titel hatte.