gpt4 book ai didi

php - 在 Wordpress 中嵌套短代码导致内部短代码根本不打印出来

转载 作者:搜寻专家 更新时间:2023-10-31 21:13:36 25 4
gpt4 key购买 nike

我已经安装了 _s 主题,但几乎没有开始使用它。

我正在尝试将名为“b”的简码嵌套在名为“cb.”的简码中 这是我的代码(来自 functions.php 文件):

// Short Code
function box_shortcode( $atts, $content = null ) {
extract(
shortcode_atts(array(
's' => '1'
), $atts));

if($s == '1') { $box_classes = 'c1_4 aside'; }
if($s == '2') { $box_classes = 'c2_4 main'; }
if($s == '3') { $box_classes = 'c3_4'; }
if($s == '4') { $box_classes = 'c4_4'; }

return '<section class="' . $box_classes . '">' . $content . '</section>';
}
add_shortcode( 'b', 'box_shortcode' );

function contentblock_shortcode( $content = null ) {
return '<div class="inner">' . do_shortcode($content) . '</div>';
}
add_shortcode( 'cb', 'contentblock_shortcode' );

add_filter('the_content', 'do_shortcode');

最佳答案

add_filter('the_content', 'do_shortcode');

不需要。

你的两者都应该将 atts 和 content 作为属性,你的 OUTER(不是内部)函数应该有一个 do_shortcode 在里面。最终代码应该是这样的:

function box_shortcode( $atts, $content = null ) {
extract(
shortcode_atts(array(
's' => '1'
), $atts));

if($s == '1') { $box_classes = 'c1_4 aside'; }
if($s == '2') { $box_classes = 'c2_4 main'; }
if($s == '3') { $box_classes = 'c3_4'; }
if($s == '4') { $box_classes = 'c4_4'; }

return '<section class="' . $box_classes . '">' . $content . '</section>';
}
add_shortcode( 'b', 'box_shortcode' );

function contentblock_shortcode( $atts, $content = null ) {
return '<div class="inner">' . do_shortcode($content) . '</div>';
}
add_shortcode( 'cb', 'contentblock_shortcode' );

如果您将短代码用作[cb][b]content[/b][/cb]如果您想以相反的方式使用它们,请将 do_shortcode($content) 移动到函数 box_shortcode( $atts, $content = null )

关于php - 在 Wordpress 中嵌套短代码导致内部短代码根本不打印出来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13766077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com