向导航菜单项添加换行符

时间:2013-07-09 作者:helgatheviking

我需要在导航菜单项标题中添加换行符。我没有意识到这是一个问题,因为当我作为超级管理员登录时,我可以添加<br/> 很好,但显然普通级别的管理员不行。

我已经看过这篇文章了Custom Menus Description Stripping HTML Tags

但我很确信这些标签在保存/更新时会被剥离,所以我并没有立即看到定制助行器是如何解决问题的,但我的大脑今天表现得很好,所以这可能是显而易见的。

似乎也没有任何卫生设施wp_save_nav_menu_items()wp_update_nav_menu_item().

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

按照@Rarst关于安全字符的提示,我最终做了如下工作:

function wpa_105883_menu_title_markup( $title, $id ){
    if ( is_nav_menu_item ( $id ) && ! is_admin() ){
        $title = preg_replace( \'/#BR#/\', \'<br/>\', $title );
    }
    return $title;
}
add_filter( \'the_title\', \'wpa_105883_menu_title_markup\', 10, 2 );
Edit: 同样根据Rarst的评论,我已经替换了preg_replace 具有str_ireplace

function wpa_105883_menu_title_markup( $title, $id ){
    if ( is_nav_menu_item ( $id ) ){
        $title = str_ireplace( "#BR#", "<br/>", $title );
    }
    return $title;
}
add_filter( \'the_title\', \'wpa_105883_menu_title_markup\', 10, 2 );

SO网友:Rarst

SAN将清理逻辑由内而外或为其编码自定义接口。。。我只想为它指定一些安全的字符(例如管道|) 并将其替换为输出上的断开标记。

它通过the_title walker中的过滤器只需及时添加和删除过滤器,这样就不会影响其他地方的标题。

结束

相关推荐

Custom menus not showing

作为我上一次关于菜单的未解决查询的后续,这个问题已经进一步扩展。我的菜单没有打印代码中的任何地方。我正在注册菜单功能。php:add_action( \'after_setup_theme\', \'your_newtheme_setup\' ); if ( ! function_exists( \'your_newtheme_setup\' ) ) : function your_newtheme_setup() { if (