Eliminarea filtrului remove_filter( 'the_content', 'wpautop' ) doar pentru anumite tipuri de postări
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' );
}
}
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;
}
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.
@VolkerE. wpautop nu mai este apelat, deoarece a fost dezactivat anterior.
fuxia
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.
+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
originalul poate fi găsit aici http://stackoverflow.com/questions/7697465/wordpress-remove-auto-generated-paragraphs-for-speciffic-custom-post-type
user319940