]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-includes/shortcodes.php
Wordpress 3.0.4
[autoinstalls/wordpress.git] / wp-includes / shortcodes.php
index 6ced181603cf703ff655cca1b6f656010dd2780a..f2048bda63eeeeb208094eb57951c54ee73cb4db 100644 (file)
@@ -175,6 +175,7 @@ function get_shortcode_regex() {
        $tagnames = array_keys($shortcode_tags);
        $tagregexp = join( '|', array_map('preg_quote', $tagnames) );
 
+       // WARNING! Do not change this regex without changing do_shortcode_tag() and strip_shortcodes()
        return '(.?)\[('.$tagregexp.')\b(.*?)(?:(\/))?\](?:(.+?)\[\/\2\])?(.?)';
 }
 
@@ -189,23 +190,23 @@ function get_shortcode_regex() {
  * @param array $m Regular expression match array
  * @return mixed False on failure.
  */
-function do_shortcode_tag($m) {
+function do_shortcode_tag( $m ) {
        global $shortcode_tags;
 
        // allow [[foo]] syntax for escaping a tag
-       if ($m[1] == '[' && $m[6] == ']') {
+       if ( $m[1] == '[' && $m[6] == ']' ) {
                return substr($m[0], 1, -1);
        }
 
        $tag = $m[2];
-       $attr = shortcode_parse_atts($m[3]);
+       $attr = shortcode_parse_atts( $m[3] );
 
-       if ( isset($m[5]) ) {
+       if ( isset( $m[5] ) ) {
                // enclosing tag - extra parameter
-               return $m[1] . call_user_func($shortcode_tags[$tag], $attr, $m[5], $m[2]) . $m[6];
+               return $m[1] . call_user_func( $shortcode_tags[$tag], $attr, $m[5], $tag ) . $m[6];
        } else {
                // self-closing tag
-               return $m[1] . call_user_func($shortcode_tags[$tag], $attr, NULL, $m[2]) . $m[6];
+               return $m[1] . call_user_func( $shortcode_tags[$tag], $attr, NULL,  $tag ) . $m[6];
        }
 }
 
@@ -289,7 +290,7 @@ function strip_shortcodes( $content ) {
 
        $pattern = get_shortcode_regex();
 
-       return preg_replace('/'.$pattern.'/s', '', $content);
+       return preg_replace('/'.$pattern.'/s', '$1$6', $content);
 }
 
 add_filter('the_content', 'do_shortcode', 11); // AFTER wpautop()