Add Protocol to Custom Menus

时间:2013-09-03 作者:cskyleryoung

我一直在使用tel: 自定义菜单中的链接与响应性设计相结合,为我的智能手机主题添加了“立即呼叫”按钮。它一直运行良好。一位客户刚刚要求我也添加一个“发送文本”按钮。我想我会用sms: 它似乎有可接受的设备支持。

然而,当我保存菜单时,WordPress将其从URL中删除。经过研究,我得出结论,这与esc_url() 和/或wp_kses() (参见Trac ticket #18268). 我编造了以下代码,试图自己添加SMS协议并将其放入函数中。php:

<?php
function add_new_protocol() {
    global $protocols;
    $new_protocols = array( \'sms\' );

    return array_merge( $protocols, $new_protocols );
}
add_filter(\'pre_kses\', \'add_new_protocol\');
?>
它不起作用:)这有点像是在黑暗中开枪;我在使用过滤器等方面还很在行。我想知道如何在自定义菜单中向Wordpress添加新协议。

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

您需要使用kses_allowed_protocols 过滤器:

function wpse_allow_sms_protocol( $protocols ) {
    $protocols[] = \'sms\';
    return $protocols;
}

add_filter( \'kses_allowed_protocols\', \'wpse_allow_sms_protocol\' );

结束

相关推荐

Wordpress Remove Submenus

我在这里找到了一个已回答的问题Remove menus and submenus 2 Answers 对于我的问题,但是否有一种方法可以稍微更改代码,以便删除所有编辑器角色的子菜单。不仅仅针对一个用户?有没有办法改进这段代码?我正在使用3.5.1 WordPress版本code that I am using: add_action(\'_admin_menu\', \'remove_editor_submenu\', 1); function remove_editor_submenu() {&