将php动态变量传递给短码

时间:2017-08-09 作者:Geo

我不确定我的问题是否有一个简单的解决方案。这个要求看起来很简单,但即使在我头破血流了6个小时后也找不到答案。我必须将变量从php函数传递到一个短代码,而这个短代码必须将这个变量传递到另一个短代码。Shortcode-1将打开一个弹出窗口,弹出窗口的内容由Shortcode-2创建,内容必须根据变量进行更改。我怎样才能做到这一点?

我的模板中的代码。。

 <a href="#" class="open-popup-1" variable= <?php getid(); ?>"> <?php  echo "Click here"?> </a> 
弹出式快捷码:

[modifycontent id=$variable] 
My shortcode函数

function modifycontent($atts = [], $content = null)
{
// do something to $content

 $var = atts[\'id\']; 

 $content = gettherightcontent($var); 
 return $content;
}
add_shortcode(\'mc\', \'modifycontent\');
我试着这样做,我设法调用了我的短代码,但无法传递变量。

1 个回复
SO网友:rudtek

我看到您的代码中有一些错误。。。

在html中,变量前面没有引号

在php上,你说你在调用短代码[修改内容],但在php上,你应该使用[mc]。

尽管如此,我还是会这样做:

function modifycontent ($atts, $content = null ) {
    $a = shortcode_atts( 
    array(
         \'id\' => \'1\',
        ), 
      $atts );

    return \'<a href="#" class="open-popup-1" variable="\'.$a[\'id\'].\'">Click here</a>\';
}
add_shortcode( \'mc-shortcode\', \'modifycontent\' );
这将使用短代码[mc短代码]返回:

<a href="#" class="open-popup-1" variable="1">Click here</a>
如果将其用于短代码:[mc shortcode id=\'1\']

它将返回:

<a href="#" class="open-popup-1" variable="2">Click here</a>
(注意变量的变化)

结束

相关推荐

如何在PHP脚本中获得对$wpdb的引用

我正在使用jQuery标记化自动完成文本条目(http://loopj.com/jquery-tokeninput) 以Wordpress的形式。这种类型的输入调用服务器上的PHP脚本(不是函数)来构建一个选项列表,用户可以在输入框中输入一些文本后从中进行选择(与此页面中输入的标记非常相似)。我的脚本位于我网站的插件目录中。我宣布global $wpdb 但是,当我尝试使用其方法(如$wpdb->prefix)时,得到的结果为空。显然,我的PHP脚本没有加载Wordpress。我尝试添加i