Wie deaktiviere ich selbstschließende Tags für Markup in WordPress (z. B. für HTML5 oder HTML4)?

Ich möchte HTML5 in meinem WordPress Theme verwenden, wie kann ich wptexturize ausschalten?

Es macht mir nichts aus, dass WP Pausen hinzufügt, aber ich will, dass sie nicht und
. Wie kann ich steuern, wie diese Unterbrechungen in meinem Code angezeigt werden?

EDIT: Ich interessiere mich nur wirklich für das Problem mit dem Tag, ich habe nichts gegen die typografischen Änderungen, die es macht.

EDIT2: Eigentlich denke ich, dass Tags auch wichtig sind. Alle selbstschließenden Standalone-Tags spielen hier eine Rolle. Also,


könnte auch ein Problem sein. wp_head() zu schweigen von solchen wp_head() Elementen wie und verschiedenen -Tags.

Solutions Collecting From Web of "Wie deaktiviere ich selbstschließende Tags für Markup in WordPress (z. B. für HTML5 oder HTML4)?"

Zeilenumbrüche werden von wpautop() hinzugefügt, nicht von wptexturize() . wpautop() ist auch die function, die automatisch Absatzmarken hinzufügt.

Du solltest die
‘s besser reparieren, als den Filter zu ersetzen. Da wpautop() mit der Priorität 10 ausgeführt wird, können Sie danach einfach wpautop() und es reparieren.

 add_filter( 'the_content', 'html5_line_breaks', 25 ); function html5_line_breaks( $content ) { return str_replace( '
', '
', $content ); }

Nach OP-Update bearbeiten:

WordPress-functionen dienen zur Ausgabe von XHTML. Um die folgenden Schrägstriche für die gesamte Site zu entfernen, müssen Sie einen Ausgabepuffer verwenden. Du könntest einen Filter verwenden, der dem obigen ähnlich ist, um Schrägstriche im Post-Inhalt zu ersetzen, aber das würde deinen Kopf, die Seitenleiste usw. nicht fangen.

Es ist ein bisschen hässlich und kann einen kleinen Einfluss auf die performance haben, aber hier geht’s (lassen Sie das in einem Plugin oder in der functions.php Datei Ihres Themes):

 if ( !is_admin() && ( ! defined('DOING_AJAX') || ( defined('DOING_AJAX') && ! DOING_AJAX ) ) ) { ob_start( 'html5_slash_fixer' ); add_action( 'shutdown', 'html5_slash_fixer_flush' ); } function html5_slash_fixer( $buffer ) { return str_replace( ' />', '>', $buffer ); } function html5_slash_fixer_flush() { ob_end_flush(); } 

Dieser Code besagt, dass Sie, wenn Sie nicht im Administrationsbereich sind und keine AJAX-Anforderungsbehandlung durchführen, die Ausgabe über einen Filter puffern und dann den WordPress Shutdown-Hook verwenden, um diesen Puffer auszugeben.

Bitte schön:

 function my_awesome_tag_fixer( $input ){ return preg_replace( '/(< .+)\s\/>/', '$1>', $input ); } foreach( array('the_content', 'the_excerpt', 'comment_text') as $filter ) add_filter( $filter, 'my_awesome_tag_fixer', 12 ); 

Es ist nicht die eleganteste Lösung, aber es geht viel schneller als das Umschreiben von wpautop und wptexturize.

Dies kann zB in der Datei function.php des remove_filter() unter Ausnutzung der function remove_filter() werden (http://codex.wordpress.org/Function_Reference/remove_filter)

 remove_filter("the_content", "wptexturize"); 

Habe es gerade gefunden; Selbstschließende Tags auf ungültige Elemente sind gültige HTML.

In HTML5 we've allowed the / on void elements (like , ,
, , etc), to ease migration to and from XML.

http://lists.whatwg.org/pipermail/help-whatwg.org/2008-August/000137.html

Mehr Informationen:

http://wiki.whatwg.org/wiki/FAQ#Should_I_close_empty_elements_with_.2F.3E_or_.3E.3F

Ich habe ein Starter Theme für html5 und WordPress und auch eine function nicht für wptexturize, sondern für wpautop (). Fügen Sie auch andere HTML-Elemente wie thead, tfoot, side hinzu und verwenden Sie die Syntax von html5
und

 /** * wpautop for HTML5, allowed: table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|map|area|blockquote|address|math|style|input|p|h[1-6]|hr|fieldset|legend|section|article|aside|header|footer|hgroup|figure|details|figcaption|summary) * @link http://nicolasgallagher.com/using-html5-elements-in-wordpress-post-content/ * @author nicolas@nicolasgallagher.com */ function html5wpautop($pee, $br = 1) { if ( trim($pee) === '' ) return ''; $pee = $pee . "\n"; // just to make things a little easier, pad the end $pee = preg_replace('|
\s*
|', "\n\n", $pee); // Space things out a little // *insertion* of section|article|aside|header|footer|hgroup|figure|details|figcaption|summary $allblocks = '(?:table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|map|area|blockquote|address|math|style|input|p|h[1-6]|hr|fieldset|legend|section|article|aside|header|footer|hgroup|figure|details|figcaption|summary)'; $pee = preg_replace('!(< ' . $allblocks . '[^>]*>)!', "\n$1", $pee); $pee = preg_replace('!()!', "$1\n\n", $pee); $pee = str_replace(array("\r\n", "\r"), "\n", $pee); // cross-platform newlines if ( strpos($pee, ']*)>\s*|', "", $pee); // no pee inside object/embed $pee = preg_replace('|\s*\s*|', '', $pee); } $pee = preg_replace("/\n\n+/", "\n\n", $pee); // take care of duplicates // make paragraphs, including one at the end $pees = preg_split('/\n\s*\n/', $pee, -1, PREG_SPLIT_NO_EMPTY); $pee = ''; foreach ( $pees as $tinkle ) $pee .= '

' . trim($tinkle, "\n") . "

\n"; $pee = preg_replace('|

\s*

|', '', $pee); // under certain strange conditions it could create a P of entirely whitespace // *insertion* of section|article|aside $pee = preg_replace('!

([^< ]+)!', "

$1

", $pee); $pee = preg_replace('!

\s*(]*>)\s*

!', "$1", $pee); // don't pee all over a tag $pee = preg_replace("|

(

  • |", "$1", $pee); // problem with nested lists $pee = preg_replace('|

    ]*)>|i', "

    ", $pee); $pee = str_replace('

    ', '
  • ', $pee); $pee = preg_replace('!

    \s*(]*>)!', "$1", $pee); $pee = preg_replace('!(]*>)\s*

    !', "$1", $pee); if ($br) { $pee = preg_replace_callback('/< (script|style).*?<\/\\1>/s', create_function('$matches', 'return str_replace("\n", "", $matches[0]);'), $pee); $pee = preg_replace('|(?< !
    )\s*\n|', "
    \n", $pee); // optionally make line breaks $pee = str_replace('', "\n", $pee); } $pee = preg_replace('!(]*>)\s*
    !', "$1", $pee); // *insertion* of img|figcaption|summary $pee = preg_replace('!
    (\s*]*>)!', '$1', $pee); if (strpos($pee, '
    ]*>)(.*?)

    !is', 'clean_pre', $pee ); $pee = preg_replace( "|\n$|", '', $pee ); return $pee; } // remove the original wpautop function remove_filter('the_excerpt', 'wpautop'); remove_filter('the_content', 'wpautop'); // add our new html5autop function add_filter('the_excerpt', 'html5wpautop'); add_filter('the_content', 'html5wpautop');

    Sehen Sie mehr auf der SVN des HTML5 Starter Theme, kein Framework!

    Deaktivieren Sie das WPtexturize-Plugin für mich: Deaktivieren Sie WPtexturize

    Es ist jedoch ziemlich direkt:

     remove_filter('the_content', 'wptexturize'); remove_filter('the_excerpt', 'wptexturize'); remove_filter('comment_text', 'wptexturize');