WordPress停止/删除http://从前面的esc_url

时间:2016-12-10 23:11:01

标签: php wordpress

我的WordPress定制器中有一个控件/设置,它接受用户输入的地址并将其输入到页面上嵌入的Google地图的网址中。我使用esc_html将地址(示例:123 Main Street)转换为正确的格式(示例:123%20Main%20Street),但它也在http://前面加上,{在这种情况下我不需要。如何删除http://

这是我在模板文件中的代码:

<?php echo esc_url( get_theme_mod( 'address' , __( '123 Main Street', 'myTheme' ) )); ?>

这是我在customizer.php中的代码:

$wp_customize->add_setting( 'address', array(
    'default'           => __( '123 Main Street', 'myTheme' ), 
) );    
$wp_customize->add_control( 'address', array(
    'label'             => __( 'Address', 'myTheme' ),
    'type'              => 'text',
    'section'           => 'map'
) );

1 个答案:

答案 0 :(得分:2)

您可以在此处使用两个选项:urlencode()rawurlencode()

urlencode()

  

返回一个字符串,其中除-_之外的所有非字母数字字符。已被替换为百分号(%),后跟两个十六进制数字和空格,编码为加号(+)。

rawurlencode()

  

返回一个字符串,其中除-_。〜之外的所有非字母数字字符都替换为百分号(%),后跟两个十六进制数字。

因此,urlencode("123 Main Street")将返回123+Main+Streetrawurlencode("123 Main Street")将返回123%20Main%20Street。选择最适合自己的方式。

如果有必要使用WordPress提供的esc_url(),您也可以使用http://从字符串中删除substr("http://123%20Main%20Street", 7);。在这种情况下,它将返回一个相同的字符串rawurlencode()