Übernehmen Sie HTML in der benutzerdefinierten function

Ich habe ein benutzerdefiniertes Feld für eine WordPress-Seite, um einen Untertitel anzuzeigen. Wie bekomme ich die folgende function, um HTML-Code wie Elemente zu akzeptieren?

function cms_page_sub_title(){ global $cms_meta, $post; if(!empty($cms_meta->_cms_page_title_sub_text)){ echo '
'.esc_attr($cms_meta->_cms_page_title_sub_text).'
'; } elseif (!empty($post->ID) && get_post_meta($post->ID, 'post_subtitle', true)){ echo '
'.esc_attr(get_post_meta($post->ID, 'post_subtitle', true)).'
'; } }

Ausgabe ist

 

Vielen Dank

Solutions Collecting From Web of "Übernehmen Sie HTML in der benutzerdefinierten function"

Der Versuch, Markup in der database zu speichern, ist generell eine schlechte Idee – einige Gründe dafür sind:

  1. Bestimmte Zeichen müssen maskiert werden, um in die database eingefügt zu werden
  2. Ein Markup in der database wirkt sich negativ auf alle Suchen aus, die Sie jetzt oder in Zukunft ausführen müssen.
  3. Markup in der database erschwert Versuche, die Daten in verschiedenen Kontexten wiederzuverwenden, jetzt oder in der Zukunft.

Speichern Sie die Rohdaten einfach in der database und formatieren Sie sie bei der Ausgabe. Der Basiscode würde wie folgt aussehen:

 $meta = get_post_meta($post->ID, 'post_subtitle', true); if (!empty($meta)) { $mstr = ''; } 

Sie können das automatisieren, indem Sie beispielsweise einen the_content erstellen oder ihn zum Beispiel mit dem Filter the_content .