通过短码清理或处理编辑器中的字符串

时间:2014-09-16 作者:Will Ashworth

我有一个通过短代码传递到页面的数据字符串,但不幸的是,短代码的原始开发人员没有说明我计划如何使用页面上的数据。我正在创建一个“离开此网站”类型的页面,用户将收到一条消息,然后自动重定向到非现场页面。

简言之,自定义字段保存了场外页面的URL,然后我将其作为$_REQUEST 变量设置为另一个“您将要离开”页面。因为有多个&?, URL中断。。。我的战友也是。不总是。。。就在有多个&?.

我希望有某种方法可以从一个短代码中对简单的解决方案进行urlencode编码,我可以将短代码包装在文本周围并对其进行编码。我知道有一些PHP短代码插件,但从安全角度来看,我希望不要使用那个插件。

也许我想错了?

我拥有的示例:

<a href="/leaving?company=[name]&url=[website]">Visit Website</a>
我希望得到的结果是:

<a href="/leaving?company=[urlencode][name][/urlencode]&url=[urlencode][website][/urlencode]">
Visit Website
</a>
我应该在我的主题的functions.php 为了这样的事?功能似乎相当简单。只是挂断了电话。

UPDATE

试图使用Caleb的解决方案,但遇到了问题。现在我在做do_shortcode() 但仍然遇到下面评论中提到的相同编码问题。

<?php
function shortcode_urlencode( $atts, $content = \'\' ) {
    return esc_url(do_shortcode($content));
}
add_shortcode( \'urlencode\', \'shortcode_urlencode\' );
?>

1 个回复
SO网友:Caleb

我相信esc_url() 你在找什么?

以下是短代码:

add_shortcode(\'urlencode\',\'shortcode_urlencode\');
function shortcode_urlencode($atts,$content = \'\') {
    return esc_url(do_shortcode($content));
}
未经测试,但应能正常工作。

结束

相关推荐

Basic do shortcodes question

我使用WordPress codex页面进行编码。正如您所看到的,我有两个PHP代码。页面能够获得代码的值,但它不遵守CSS规则,我相信这是因为我以错误的方式插入了PHP代码。您能看一下下面的代码并提出问题所在吗?<?php echo do_shortcode(\'[groups_non_member group=\"VPS\"]\' .\"<p class=\'vod-time-price\'>\" . the_field(\'run_t\') . \"MIN | $\". the