Wordpress: Özel the_content filtre kaldırırken diğer filtreler, yani: wpautop

0 Cevap php

Bu filtreler ile oynarken benim ilk kez, bu yüzden bu temel görünüyor eğer beni affet. Googling sessiz biraz yaptım ve ben bu bir sorun olmadan çalışıyor olması gerekir bulmak mümkün olmuştur her şeyi, benim problem ile ilgili bir şey bulamıyorum. Bu başka filtreler wordpress otomatik olarak, yani, çalışan ile eşzamanlı çalıştırmak elle eklenen filtreler benim anlayış: benim kendi filtre oluşturma WordPress varsayılan wpautop ve Yapılandırmak filtreleri ile birlikte çalışacaktır.

Ama nedense benim katma filtre şimdi wpautop ve Yapılandırmak the_content çalıştırmak için başarısız dışında, gayet iyi çalışıyor. Işlevleri benim özel filtre çıkardıktan sonra, varsayılan filtreler tekrar tetikliyor. Çıkışını değiştiriyorsunuz yüklü başka hiçbir eklentileri. Herhangi bir yardım süper benim ifadeleri ile yanlış bir şey görürseniz bunu yapmak için daha iyi bir yolu olarak herhangi bir genel önerileri ile birlikte, mutluluk duyacağız.

function tumblr_chat_post($content) {
global $post;
$content = $post->post_content;
if ($post->post_type == 'post') {
    $postcats = wp_get_object_terms($post->ID, 'category');
    foreach ($postcats as $mycat) {
        if ($mycat->name == "chats") {
            $chatoutput = "<dl class=\"transcript\">\n";
            $split = preg_split("/(\r?\n)+|(<br\s*\/?>\s*)+/", $content);
                foreach($split as $haystack) { 
                    if (strpos($haystack, ":")) {
                        $string = explode(":", trim($haystack), 2);
                        //list($who, $what) = explode(":", $haystack, 2);
                        $who = trim($string[0]);
                        $what = trim($string[1]);
                        $row_class = empty($row_class)? " class=\"alt\"" : "";
                        $chatoutput = $chatoutput . "<dt$row_class><b>$who:</b></dt> <dd><i>$what</i></dd>\n";
                    }
                    else {
                    // the string didn't contain a needle so we will keep it and output it later
                        $no_chatoutput = $no_chatoutput . $haystack . "\n";
                    }
                }
                // print our new formated chat post and push unformatted content to the end of the post.
                $content = $chatoutput . "</dl>\n" . $no_chatoutput;
                return $content;
        } 
        else {
        // I don't exist in the defined category, so no processing is needed
        return $content;
        }
    }
} 
else { 
    // I'm not a regular post, so no processing is needed.
    return $content;
}
}
add_filter( "the_content", "tumblr_chat_post", 20);

0 Cevap