2016-04-22 3 views
2

Ich verwende dieses Snippet.Warum wird aria-hidden = "true" entfernt, wenn Sanitizing-Callback verwendet wird wordpress

function html_sanitize_text($input) { 
    return wp_kses_post(force_balance_tags($input)); 
} 

ich dies mit html in den Wordpress-Customizer sanitze.

Die html in diesem Textfeld <i class="fa fa-laptop" aria-hidden="true"></i>

ist, wenn meine Änderungen in den Customizer Sparend - dann aktualisieren - dann in dem Customizer auf dieses Gebiet zurück,/Wordpress-Streifen entfernt aria-hidden="true".

Irgendeine Idee warum? und wie man das umgehen kann?

Dank

+1

Warum benutzen Sie wp_ks nicht? http://codex.wordpress.org/Function_Reference/wp_kses Sie können passieren, was Sie ignorieren, und es wird es nicht Ihren aria-versteckten Code dann –

+0

Kein Grund ... war nicht sicher, was der beste Weg war um HTML anzuzeigen und zu bereinigen. @SimonPollard – breezy

+1

Geben Sie es los, Sie haben mehr Kontrolle mit dieser Funktion, geben Sie mir einen Ruf, wenn Sie weitere Hilfe benötigen :) Viele wp-Funktionen sind Variationen von anderen in einem Versuch, das Leben zu erleichtern, aber manchmal ist es schön zu haben etwas Kontrolle. –

Antwort

3

Wenn Sie zum gehen wp core pag über wp_kses_post, erwähnt sie, dass es nur „mit HTML-Tags erlaubt Post Inhalt“ ermöglicht.

Bei weiterer Untersuchung, wenn Sie auf die kses.php file schauen, enthält der Abschnitt über zulässige Tags und Attribute aria-hidden nicht, so nehme ich an, dass es aus dem HTML von der Funktion gereinigt wird.

Auch in Bezug auf die Bereinigung Ihrer Eingabe, ist einfach mysqli_real_escape_string() (in Bezug auf this post) nicht ausreichend?

+0

Danke, Alter. Ihre Informationen haben mir geholfen, eine Lösung für mein Problem zu finden. – breezy

+1

Kein Problem, froh zu helfen. – Wold

0

Ich endete mein Problem mit dieser Funktion zu lösen. Bitte korrigieren oder bearbeiten, wenn es besser sein kann.

function html_sanitize_text($input) { 

    $filtered = wp_kses($unfiltered, $allowed_html, $allowed_protocols); 

    $allowed_html = array(
     'aria-hidden' => array(), 
     'i' => array(
      'class' => array(), 
      'aria-hidden' => array() 
     ), 
    ); 

    return $input; 
} 

Diese Streifen aus nicht aria-hidden="true" von meinem Eingabefeld in dem Customizer, wenn meine Änderungen zu speichern.

Posted dies für den Fall, dass jemand in der Zukunft dieses Problem bei der Verwendung der Schriftart awesome Bibliothek in Wordpress hat.

Verwandte Themen