gpt4 book ai didi

php - 如何在嵌套的短代码中获取属性?

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

我正在为我的 Wordpress 主题创建幻灯片简码,但遇到了一个小问题。这是短代码的样子:

[slideshow width=500]
[slide]http://example.com/image1.jpg[/slide]
[slide]http://example.com/image2.jpg[/slide]
[slide]http://example.com/image3.jpg[/slide]
[/slideshow]

所以,基本上它是两个不同的简码(幻灯片和幻灯片),我需要设置每个“幻灯片”简码的宽度。如何从父级“slideshow”短代码中获取“width”属性并将其传递给每个子级“slide”?

    //Create slideshow wrapper div
function shortcode_slideshow($atts, $content = null){
$return = '<div class="slideshow">';
$return .= do_shortcode($content);
$return .= '</div><!-- end slideshow -->';

return $return;
}

//Create each slide HTML
function shortcode_slide($atts, $content = null){
$return = '<a class="dolightbox" href="'.$content.'">';
$return .= '<img src="'.$content.'" /></a>';
return $return;
}

add_shortcode('slideshow', 'shortcode_slideshow');
add_shortcode('slide', 'shortcode_slide');

最佳答案

最终使用全局变量将值传递给第二个简码函数。我想也许有一种原生的 Wordpress 方法可以做到这一点,但我显然没有。

//Create slideshow wrapper div
$globalWidth = NULL;

function shortcode_slideshow($atts, $content = null){
extract(shortcode_atts( array('width' => ''), $atts));
global $globalWidth;
$return = '<div class="slideshow">';
$return .= do_shortcode($content);
$return .= '</div><!-- end slideshow -->';

return $return;
}

//Create each slide HTML
function shortcode_slide($atts, $content = null){
global $globalWidth;
$return = '<img width="'.$globalWidth.'" src="'.$content.'" />';

return $return;
}

add_shortcode('slideshow', 'shortcode_slideshow');
add_shortcode('slide', 'shortcode_slide');

关于php - 如何在嵌套的短代码中获取属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8498254/

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