自定义设置页面上的输入添加了http://

时间:2018-09-17 作者:bckelley

enter image description here

如何使文本框不添加HTTP://?

function skype_callback() {

    $options = get_option( \'theme_social_options\' );

    $url = \'\';
    if ( isset( $options[\'skype\'] ) ) {
        $url = esc_url( $options[\'skype\'] );
    } // end if

    echo \'<input type="text" id="skype" name="theme_social_options[skype]" value="\' . $url . \'" />\';

} // end skype_callback

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

转义函数正在添加它,esc_url 保证它返回的将是一个URL,因为它是一个转义函数,如果您要输出一个您应该使用的URL,那么它应该是一个URLesc_url 所以它是安全的,绝对是一个URL,而不是其他恶意的东西。

然而,令人困惑的是,事情正在变得一团糟。文本框不应该包含Skype用户名,它应该包含Skype URL。

单击skype url时,会打开skype应用程序,并开始与您通话。我相信他们是这样的:skype:username?chat

换一种方式思考。如果主题仅显示一个skype图标,而您在框中输入了skype用户名,那么单击skype图标时会发生什么情况?

可以这么说,您需要执行多项操作才能将其从skype URL更改为skype用户名:

更换esc_url 具有esc_attresc_html 不esc_url

  • 查找保存的代码,确保它作为HTML字符串而不是URL进行清理。请注意,如果更新主题,所有这些更改都将丢失。您不应该像现在这样直接修改主题,而是创建子主题

  • 结束

    相关推荐