我试图将一个shortcode参数值推送到模板文件中,但由于某些原因,我无法将目标数组值放入单个变量中。以下是我的代码和使用的快捷码:
function content_table($atts) {
$atts = shortcode_atts(array(
\'tablepageid\' => \'\'
), $atts);
include(locate_template(\'table-layout.php\'));
}
add_shortcode(\'ContentTable\', \'content_table\');
Edit 我删除了短代码中的引号,现在可以看到值:[ContentTablePageId=4799]
我创建了一个页面来测试shortcode函数:
print_r(array_values($atts));
Array ( [0] => 4799 )
快捷码中的值可用,但我在将该值放入模板要使用的变量时遇到了一些问题:
$arr = $atts[0];
$arrTable变量为空。。。我不明白为什么不是4799。
最合适的回答,由SO网友:Z. Zlatev 整理而成
您可能对array_values()
这将始终只获取不带键的数组值$atts
变量实际上是一个关联数组。
要提取属性,请使用$arr = $atts[\'tablepageid\'];
干杯
SO网友:Nathan Powell
短代码旨在return
值,或echo
他们您可以使用include
但除非你提供$atts
对于函数,您将看不到任何内容。
基本上没有人可以帮助您,除非我们看到您的其余代码。我的最佳猜测是,您需要从shortcode中的属性全局声明变量,然后将其声明为模板。
执行上述操作只是避免了创建一个函数的愚蠢,该函数接受属性作为参数传递给将函数返回值重新声明为局部变量的文件。
该列表在PHP中继续显示。如果您显示您的include文件,这将有所帮助。