如何解决使用相同的短代码返回多个结果
我在 functions.php
中添加了一个函数,它适用于带有 $link
中提到的链接的一个结果,但是我正尝试使用此函数显示来自类似链接的多个结果。尝试通过在 $atlantic1
中添加第二个链接来返回带有两个变量 $atlantic2
和 $link2
的数组,还尝试使用新的短代码创建另一个函数以获得第二个结果,但没有任何效果。
解决此问题的最佳方法是什么?
function fish($bubbles) {
extract(shortcode_atts(array(
"fin" => get_option('pacific'),),$bubbles));
$width = " width=\"".$fin['width']."\"";
$height = " height=\"".$fin['height']."\"";
$osorientation = " orientationMode=\"manual\"";
$link = "https://pacific.local/item/1/A";
$path = parse_url($link,PHP_URL_PATH);
$segments = explode('/',rtrim($path,'/'));
wp_enqueue_script( 'some-pacific-js' );
$atlantic = "<fish-info fAdd=\"".$segments[2]."\" fId=\"".$segments[3]."\" network=\"".$network."\"></fish-info>";
return $atlantic;
}
add_filter('widget_text','do_shortcode');
add_shortcode('pacific','fish');
解决方法
首选方式是将link
作为短代码的参数传递,然后通过特定链接调用短代码两次。
首先改变fish函数:
function fish($atts) {
// Pay attention,I removed "extract" so $fin is now a key inside $atts
$atts = shortcode_atts( array(
'fin' => get_option('pacific'),'item' => 'CHOOSE_A_DEFAULT'
),$atts );
$width = " width=\"".$atts['fin']['width']."\"";
$height = " height=\"".$atts['fin']['height']."\"";
$osorientation = " orientationMode=\"manual\"";
$link = "https://pacific.local/item/" . $atts['item'];
$path = parse_url($link,PHP_URL_PATH);
$segments = explode('/',rtrim($path,'/'));
wp_enqueue_script( 'some-pacific-js' );
$atlantic = "<fish-info fAdd=\"".$segments[2]."\" fId=\"".$segments[3]."\"
network=\"".$network."\"></fish-info>";
return $atlantic;
}
在您调用短代码的小部件中,您可能有以下内容:
[pacific]
你必须把它改成这样:
[pacific item="1/A"]
[pacific item="2/B"]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。