Eliminarea filtrului remove_filter( 'the_content', 'wpautop' ) doar pentru anumite tipuri de postări

24 ian. 2013, 01:09:00
Vizualizări: 27.5K
Voturi: 7

Vreau să încerc să elimin adăugarea automată a tag-urilor <p> și <br> pentru tipul meu personalizat de postare.

Se pare că

remove_filter( 'the_content', 'wpautop' );

va face acest lucru, dar cum aș putea face modificarea doar pentru tipul de postare ales de mine. Am încercat să scriu o funcție pentru aceasta, dar nu pare să funcționeze:

function remove_tags() {
    global $post_type;

    if ( 'client' == $post_type ) {
        remove_filter( 'the_content', 'wpautop' );
    }
}
2
Comentarii

Unde puneți aceste funcții?

s_ha_dum s_ha_dum
24 ian. 2013 01:15:38

în fișierul meu de plugin pentru tipul personalizat de postare

user319940 user319940
24 ian. 2013 01:16:52
Toate răspunsurile la întrebare 2
3
12

Conectați-vă la the_content înainte ca filtrul wpautop să fie apelat, verificați tipul postării și eliminați filtrul wpautop, care este adăugat în wp-includes/default-filters.php cu prioritatea implicită 10:

add_filter( 'the_content', 'wpse_82860_remove_autop_for_posttype', 0 );

function wpse_82860_remove_autop_for_posttype( $content )
{
    # editați tipul postării aici
    'post' === get_post_type() && remove_filter( 'the_content', 'wpautop' );
    return $content;
}
24 ian. 2013 06:07:47
Comentarii

După ani de zile, încă am probleme în înțelegerea gestionării priority a filtrelor în WP. Nu înseamnă 0 că este apelat primul și apoi wpauto implicit este apelat cu priority-ul său de 10 și readaugă <p>-urile înapoi?

Volker E. Volker E.
1 feb. 2015 02:52:51

@VolkerE. wpautop nu mai este apelat, deoarece a fost dezactivat anterior.

fuxia fuxia
1 feb. 2015 02:55:03

Oh, sigur. Mulțumesc! Și nici măcar nu e târziu la mine acum. :}

Volker E. Volker E.
1 feb. 2015 02:58:48
3
11
remove_filter('the_content','wpautop');

//decidezi când să aplici paragraful automat

add_filter('the_content','my_custom_formatting');

function my_custom_formatting($content){
if(get_post_type()=='my_custom_post') //dacă nu funcționează, poți trece obiectul post curent la get_post_type
    return $content;//fără autop
else
 return wpautop($content);
}

am găsit acest cod pe stackoverflow - pare să facă treaba.

24 ian. 2013 01:28:20
Comentarii

+1 pentru că ai găsit singur răspunsul :) Te rog să postezi totuși URL-ul întrebării unde ai găsit codul.

s_ha_dum s_ha_dum
24 ian. 2013 01:29:19

Această soluție se va strica atunci când un alt plugin vrea să facă același lucru pentru un alt tip de postare personalizată.

fuxia fuxia
24 ian. 2013 05:59:19