add_filter zu dem_content nach apply_filters

Ich habe einen Shortcode, der null (“”) ausgibt.

Was ich versuche zu erreichen, ist eine Standardnachricht auszugeben, wenn der Shortcode null ausgibt. Ich möchte meinen Shortcode nicht erweitern, da es mehrere Instanzen des Shortcodes geben kann und ich die Nachricht nicht mehrmals ausgeben möchte.

Also meine function ist wie folgt:

function av_standalone_doc_404($content) { if(has_term('standalone-document', 'formats')){ $filtered_content = apply_filters('the_content', $content); if(empty($content)){ // Display 404 message $output .= '
Error: Please check this page later.
'; }else{ $output .= ''; } return $output . $content; } } add_filter('the_content', 'av_standalone_doc_404', 12);

Das Problem ist, dass apply_filters einen schwerwiegenden Fehler verursacht – offensichtlich, weil Sie keinen Filter auf den Inhalt anwenden und apply_filters innerhalb dieses Filters aufrufen apply_filters .

Die Ladereihenfolge “12” scheint ebenfalls nicht zu helfen.

Wie kann ich den Filter nach den nachfolgenden Filtern anwenden, die den the_content auf the_content ?

Solutions Collecting From Web of "add_filter zu dem_content nach apply_filters"

Wenn Sie die aktuelle do_shortcode() möchten, versuchen Sie, sich frühzeitig do_shortcode() und do_shortcode() :

 function av_standalone_doc_404($content) { remove_filter( current_filter(), __FUNCTION__ ); if ( has_term( 'standalone-document', 'formats' ) ) { $filtered_content = do_shortcode( $content ); // … 

Wenn Sie die Wiederholung von Shortcode-Ausgaben vermeiden möchten, verwenden Sie eine statische Variable im Shortcode-Handler:

 function shortode_handler() { static $done = FALSE; if ( $done ) return; $done = TRUE; // create the shortcode output; this will happen only once. return $output; }