在另一个函数中调用快捷码属性值

时间:2017-11-16 作者:naikee

请任何人知道我如何提取这个短代码属性的一些值,并在另一个函数中使用它。

代码的外观:

function myVal($attr, $content = null) {

  extract(shortcode_atts(array(
    \'var1\'  => \'\',
    \'var2\'  => \'\',
    \'var3\'  => \'\',
    \'var4\'  => \'\',
    \'var5\'  => \'\',
  ), $attr));

  return $var1.\' \'.$var3.\' \'.$var5;

  //Value to display outside the wordpress shortcode.
  global $outvalue;
  $outvalue = $val2.\' \'.$val4;
}

然后我想在另一个函数中调用$outvalue变量。

function outval() {
  global $outvalue;
  echo $outvalue;
}
问题是$outvalue没有显示任何内容,请大家帮忙我不知道哪里做错了,我也知道我可以使用get_shortcode_regex()但我不知道如何用它来调用$outvalue;.请欣赏分步回答指南。谢谢

1 个回复
SO网友:websupporter

第一:在将值添加到$outvalue, 因此,这部分代码永远无法访问。

第二:在将值添加到$outvalue.

此功能适用于我:

function myVal($attr, $content = null) {

  extract(shortcode_atts(array(
    \'var1\'  => \'\',
    \'var2\'  => \'\',
    \'var3\'  => \'\',
    \'var4\'  => \'\',
    \'var5\'  => \'\',
  ), $attr));

  //Value to display outside the wordpress shortcode.
  global $outvalue;
  $outvalue = $var2.\' \'.$var4;

  return $var1.\' \'.$var3.\' \'.$var5;

}
记住,当这些值实际分配给$outvalue. 这发生在in之后the_content(), 因为在the_content-滤器

如果你打电话outval() 在标题中。php,您将无法获得任何信息,因为您的shortcode函数尚未运行。如果你在页脚处打电话。php,则会分配值。

结束

相关推荐

GET_SHORTCODE_regex()只与第一个短码匹配

法典中有an example 使用get\\u shortcode\\u regex()检查是否在给定页面上调用了短代码:$pattern = get_shortcode_regex(); preg_match(\'/\'.$pattern.\'/s\', $posts[0]->post_content, $matches); if (is_array($matches) && $matches[2] == \'YOURSHORTCODE\') { /