WP短代码将变量传递给函数

时间:2014-05-29 15:24:27

标签: php wordpress shortcode

我试图传递或存储CMS用户在短代码中提供的文件路径字符串,并在函数中使用它,然后在短代码渲染时执行该函数。

以下是详细信息:

function wpsdc( $atts ) {
extract( shortcode_atts( array(
    'file_path' => '', 
    'text' => ''
    ), $atts ) );

$wpsdc_output = wpsdc_short_code($text);

return $wpsdc_output;
}
add_shortcode('wpsdc','wpsdc');

我的 wpsdc_short_code 函数返回一些基本格式html:

<form action='wpsdc-validate-email.php' method='post' id='download_content'>
   <input id='emailtext' name='email' type='text'>
   <button id='submit-email' type='submit'>Click</button>
</form>

我的目标是将一个字符串(我将其呈现为锚文本链接)返回到初始短代码中定义的文件路径。

[wpsdc file_path='/downloads/some_pdf_file.pdf' text='Click']

如何将$ file_path变量提供给我的&#39; wpsdc-validate-email.php &#39;文件没有在html表单标记中显示文件字符串吗?

非常感谢你。

1 个答案:

答案 0 :(得分:1)

我可以看到一些方法:

  1. 使用php的mcrypt函数加密您的file_path并将其存储在表单上的隐藏字段中,然后使用mcrypt_decrypt在表单中对其进行解码动作脚本。文档:http://www.php.net/manual/en/book.mcrypt.php

  2. file_path存储在php $_SESSION中并使用此功能。有关基础知识,请参阅此Wordpress支持主题:http://wordpress.org/support/topic/using-session-in-wordpress

  3. 如果您的PHP服务器被锁定,您还可以使用WP Session Manager之类的插件。