如何将帖子标题(可以包括&)传递到Grails表单

时间:2013-11-20 作者:Dave Clements

我已经创建了一个表单(重力表单),我希望能够从其他几个网站动态完成该表单。在这种情况下,我试图发送到表单中的一个字段是帖子标题,它可以(而且确实)不时包含符号(例如重力输入和输出表单)。

我遇到的问题是,如何对帖子标题进行编码,这样帖子标题中的符号就不会被视为下一个查询变量的分隔符。

例如,URLmydomain.com/page-with-my-form-on-it/?title=The Ins & Outs of Gravity Forms&type=new 应在“标题”字段中填写“Ins&;“Outs of Gravity Forms”和带有“new”的“type”字段,但它将“in”放在“title”字段中,并将“type”字段(以及任何其他后续字段)留空。

要创建该URL,我当前的代码如下所示,尽管我已经尝试使用urlencode()、htmlentities()和str\\u replace()和\\u title()来解决这个问题:

<a href="http://www.mydomain.com/page-with-my-form-on-it/?title=<?php the_title(); ?>&type=new">Link</a>
有什么建议吗?

1 个回复
最合适的回答,由SO网友:George G. 整理而成

你已经说过你试过了urlencode(), 但你用什么试过?如果你试过的话urlencode() 值来自the_title()the_title_attibute() 到目前为止,请尝试get_the_title() 直接地如果我尝试使用一个小测试短代码,我可以通过尝试得到不同的结果:

使用the_title(): the_title

function wpse_123927_cb() {
    return urlencode( the_title() );
}
add_shortcode(\'test_wpse_123927\', \'wpse_123927_cb\');
使用the_title_attribute(): the_title_attribute

function wpse_123927_cb() {
    return urlencode( the_title_attribute() );
}
add_shortcode(\'test_wpse_123927\', \'wpse_123927_cb\');
使用get_the_title(): get_the_title

function wpse_123927_cb() {
    return urlencode( get_the_title() );
}
add_shortcode(\'test_wpse_123927\', \'wpse_123927_cb\');
第三种解决方案在这两方面都很有效。我在这里使用这个小代码来测试:

function wpse_123927_cb() {
    $encode = esc_attr( urlencode( get_the_title() ) );
    $decode = urldecode($encode);

    return \'Encoded: \' . $encode . \'<br>Decoded: \'. $decode;
}
add_shortcode(\'test_wpse_123927\', \'wpse_123927_cb\');
并得到以下输出:encoded & decoded

希望有帮助!

结束

相关推荐

Wordpress global variables?

我有一个叫“某物”的metabox页面。它可以有两个值“value”和“value2”。我在这个页面上使用了一个短代码,希望它显示一些东西的值。问题是我不知道如何在短代码中访问全局变量?例如,我在第页有这个。php:if($something == \"value\") { global $one, $two; $one = 120; $two = 240; } 现在我想在shortocde(functions.php文件)中