[wp-trac] [WordPress Trac] #58333: WordPress 6.2.1 Shortcodes some shortcode no longer works!

WordPress Trac noreply at wordpress.org
Thu May 18 15:20:47 UTC 2023


#58333: WordPress 6.2.1 Shortcodes some shortcode no longer works!
--------------------------+-----------------------
 Reporter:  jorcus        |       Owner:  (none)
     Type:  defect (bug)  |      Status:  reopened
 Priority:  normal        |   Milestone:  6.2.2
Component:  Shortcodes    |     Version:  6.2.1
 Severity:  normal        |  Resolution:
 Keywords:                |     Focuses:
--------------------------+-----------------------

Comment (by siiimon):

 Replying to [comment:72 gmariani405]:
 > Replying to [comment:7 andergmartins]:
 > > For those who want to stay on 6.2.1 and need to restore the support
 for shortcodes on templates, you can try this workaround.
 > >
 > > Add the following code as a plugin in a PHP file in the plugins
 folder:
 > >
 > > {{{#!php
 > > <?php
 > > /*
 > > Plugin Name: Fix shortcode
 > > Plugin URI:
 > > Description: Restore shortcode support on block templates
 > > Author: Anderson Martins
 > > Version: 0.1.0
 > > */
 > >
 > > add_filter('render_block_data', function($parsed_block) {
 > >     if (isset($parsed_block['innerContent'])) {
 > >         foreach ($parsed_block['innerContent'] as &$innerContent) {
 > >             if (empty($innerContent)) {
 > >                 continue;
 > >             }
 > >
 > >             $innerContent = do_shortcode($innerContent);
 > >         }
 > >     }
 > >
 > >     if (isset($parsed_block['innerBlocks'])) {
 > >         foreach ($parsed_block['innerBlocks'] as $key => &$innerBlock)
 {
 > >             if (! empty($innerBlock['innerContent'])) {
 > >                 foreach ($innerBlock['innerContent'] as
 &$innerContent) {
 > >                     if (empty($innerContent)) {
 > >                         continue;
 > >                     }
 > >
 > >                     $innerContent = do_shortcode($innerContent);
 > >                 }
 > >             }
 > >         }
 > >     }
 > >
 > >     return $parsed_block;
 > > }, 10, 1);
 > >
 > >
 > > }}}
 > >
 > >
 > > But be aware that support was removed for fixing a security issue, and
 restoring shortcode support you are probably bringing back the security
 issue.
 >
 > Fixed it, this looks to be working now.
 >
 > {{{#!php
 > <?php
 > /*
 > Plugin Name: Fix shortcode
 > Plugin URI:
 > Description: Restore shortcode support on block templates
 https://core.trac.wordpress.org/ticket/58333
 > Author: Anderson Martins, Gabriel Mariani
 > Version: 0.2.0
 > */
 >
 > function parse_inner_blocks(&$parsed_block)
 > {
 >     if (isset($parsed_block['innerBlocks'])) {
 >         foreach ($parsed_block['innerBlocks'] as $key => &$inner_block)
 {
 >             if (!empty($inner_block['innerContent'])) {
 >                 foreach ($inner_block['innerContent'] as
 &$inner_content) {
 >                     if (empty($inner_content)) {
 >                         continue;
 >                     }
 >
 >                     $inner_content = do_shortcode($inner_content);
 >                 }
 >             }
 >             if (isset($inner_block['innerBlocks'])) {
 >                 $inner_block = parse_inner_blocks($inner_block);
 >             }
 >         }
 >     }
 >
 >     return $parsed_block;
 > }
 >
 > add_filter('render_block_data', function ($parsed_block) {
 >
 >     if (isset($parsed_block['innerContent'])) {
 >         foreach ($parsed_block['innerContent'] as &$inner_content) {
 >             if (empty($inner_content)) {
 >                 continue;
 >             }
 >
 >             $inner_content = do_shortcode($inner_content);
 >         }
 >     }
 >
 >     $parsed_block = parse_inner_blocks($parsed_block);
 >
 >     return $parsed_block;
 > }, 10, 1);
 >
 > }}}

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/58333#comment:78>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list