Quantcast
Channel: Torsten, Autor bei Torsten Landsiedel
Viewing all articles
Browse latest Browse all 160

HTML-Tags aus Shariff Wrapper entfernen

$
0
0

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.


Viewing all articles
Browse latest Browse all 160