我的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'
) );
答案 0 :(得分:2)
您可以在此处使用两个选项:urlencode()
和rawurlencode()
。
urlencode()
:
返回一个字符串,其中除-_之外的所有非字母数字字符。已被替换为百分号(%),后跟两个十六进制数字和空格,编码为加号(+)。
rawurlencode()
:
返回一个字符串,其中除-_。〜之外的所有非字母数字字符都替换为百分号(%),后跟两个十六进制数字。
因此,urlencode("123 Main Street")
将返回123+Main+Street
,rawurlencode("123 Main Street")
将返回123%20Main%20Street
。选择最适合自己的方式。
如果有必要使用WordPress提供的esc_url()
,您也可以使用http://
从字符串中删除substr("http://123%20Main%20Street", 7);
。在这种情况下,它将返回一个相同的字符串rawurlencode()
。