[wp-trac] [WordPress Trac] #58333: WordPress 6.2.1 Shortcodes some shortcode no longer works!
WordPress Trac
noreply at wordpress.org
Thu May 18 13:51:45 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 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:72>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list