web-dev-qa-db-de.com

remove_filter ('the_content', 'wpautop'); nur für bestimmte Beitragstypen

Ich möchte versuchen, das automatische Hinzufügen von <p>-Tags und <br>-Tags für meinen benutzerdefinierten Beitragstyp zu entfernen.

Es sieht aus wie

remove_filter( 'the_content', 'wpautop' );

wird dies tun, aber wie würde ich die Änderung nur für meinen ausgewählten Beitragstyp vornehmen? Ich habe versucht, eine Funktion dafür zu schreiben, aber es scheint nicht zu funktionieren:

function remove_tags() {
    global $post_type;

    if ( 'client' == $post_type ) {
        remove_filter( 'the_content', 'wpautop' );
    }
}
6
user319940
remove_filter('the_content','wpautop');

//decide when you want to apply the auto paragraph

add_filter('the_content','my_custom_formatting');

function my_custom_formatting($content){
if(get_post_type()=='my_custom_post') //if it does not work, you may want to pass the current post object to get_post_type
    return $content;//no autop
else
 return wpautop($content);
}

fand diesen Code auf Stackoverflow - scheint den Trick zu tun.

8
user319940

Hängen Sie sich in the_content ein, bevor der Filter wpautop aufgerufen wurde, überprüfen Sie den Beitragstyp und entfernen Sie den Filter wpautop, der in wp-includes/default-filters.php mit der Standardpriorität 10 hinzugefügt wird:

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

function wpse_82860_remove_autop_for_posttype( $content )
{
    # edit the post type here
    'post' === get_post_type() && remove_filter( 'the_content', 'wpautop' );
    return $content;
}
10
fuxia