对于一些wordpress网站,我正在创建一个cookiewall。所以在插件文件中我创建了一个这样的短代码:
function agreebutton($atts, $content = null) {
extract(shortcode_atts(array($atts),$content));
return '<button type="submit" onClick="SetCookie('clickagree','yes')">';
do_shortcode($content) . '</button>';
add_shortcode('button', 'agreebutton');
在自定义模板中,我设置了一个SetCookie函数,因此如果单击该按钮,将放置cookie:
<script>
function SetCookie(cookieName,cookieValue) {
var today = new Date();
var expire = new Date();
var nDays=365
expire.setTime(today.getTime() + 3600000*24*nDays);
document.cookie = cookieName+"="+escape(cookieValue)+";expires="+expire.toGMTString(); }</script>
现在的问题是,当我尝试返回onClick =“SetCookie('clickagree','yes')时,我得到一个意外的'clickagree'语法错误(T_STRING)。 转义并不解决它,并且要使短代码工作,您需要返回而不是回显。
有什么想法吗?
答案 0 :(得分:0)
好的,所以在更改引用后,这有效:
return '<button onClick="SetCookie( \'clickagree\',\'yes\')">' . do_shortcode($content) . '</button>';