Odstranění formátování


Existují sice pluginy, které výše zmíněný problém natvrdo odstraní, ale zase na druhou stranu přicházíme o veškerý komfort. Po dnešním návodu pochopíte, že můžete mít obojí.

Nejdříve do souboru šablony function.php vložíme následující kód:

function my_formatter($content) {
    $new_content = '';
    $pattern_full = '{([raw].*?[/raw])}is';
    $pattern_contents = '{[raw](.*?)[/raw]}is';
    $pieces = preg_split($pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE);
    $matches = array();
    foreach ($pieces as $piece) {
        if (preg_match($pattern_contents, $piece, $matches)) {
            $new_content .= $matches[1];
        } else {
            $new_content .= wptexturize(wpautop($piece));
        }
    }

    return $new_content;
}

remove_filter('the_content', 'wpautop');
remove_filter('the_content', 'wptexturize');

add_filter('the_content', 'my_formatter', 99);

Pomocí značek [raw] a [/raw] pak v příspěvcích definujeme oblast, kde automatické formátování nemá být použito. Uvedené řešení jsem čerpal z webu Wprecipes