Entferne und stelle einen Shortcode wieder her

Ich würde einen Shortcode vorübergehend entfernen, etwas machen und es wiederherstellen … ist es möglich?

// override default wordpress "the_content" hook remove_filter('the_content', 'do_shortcode', 11); add_filter('the_content', 'my_the_content', 11); function my_the_content($content) { remove_shortcode('some_shortcode'); $content = do_shortcode($content); // restore the shortcode add_shortcode('some_shortcode', '?????????????????????????????'); return $content; } 

das Problem ist, wie es richtig wiederherzustellen …

Original Shortcode ist in einer class, zB:

 class foo { function __construct(){ add_shortcode('some_shortcode', array($this, 'get_some_shortcode')); } public function get_some_shortcode(){ return 'bar'; } } 

Solutions Collecting From Web of "Entferne und stelle einen Shortcode wieder her"

Eine weitere alte unbeantwortete Frage. Hoffentlich nützlich für jemanden in der Zukunft.

WordPress speichert Shortcode-Tags und Callbacks in den $shortcode_tags . So würde ich es machen.

 function my_the_content( $content ) { global $shortcode_tags; $tag= 'some_shortcode'; //* Make sure it's actually a valid shortcode if( ! isset( $shortcode_tags[ $tag ] ) ) { return $content; } $func = $shortcode_tags[ $tag ]; remove_shortcode( $tag ); //* Do something useful //* Restore the shortcode add_shortcode( $tag, $func ); return $content; }