WordPress允许菜单描述中的HTML

时间:2014-10-03 12:23:08

标签: wordpress menu filter

我查看了如何在菜单说明中允许带有链接或其他标记的HTML,但我能找到的是如何使用

剥离标记
// Allow HTML descriptions in WordPress Menu
remove_filter( 'nav_menu_description', 'strip_tags' );

我找到了这个函数,它应该允许在菜单描述中编写链接和其他HTML元素

add_filter( 'wp_setup_nav_menu_item', 'cus_wp_setup_nav_menu_item' );
function cus_wp_setup_nav_menu_item( $menu_item ) {
     $menu_item->description = (isset($menu_item->post_content)) ? apply_filters( 'nav_menu_description', $menu_item->post_content ) : '';
     return $menu_item;
}

但是这将输出菜单描述中的页面内容:\

还有其他方法吗?

1 个答案:

答案 0 :(得分:7)

我认为您的代码应如下所示:

remove_filter( 'nav_menu_description', 'strip_tags' );

function my_plugin_wp_setup_nav_menu_item( $menu_item ) {
    if ( isset( $menu_item->post_type ) ) {
        if ( 'nav_menu_item' == $menu_item->post_type ) {
            $menu_item->description = apply_filters( 'nav_menu_description', $menu_item->post_content );
        }
    }

    return $menu_item;
}

add_filter( 'wp_setup_nav_menu_item', 'my_plugin_wp_setup_nav_menu_item' );

你的步行者课程怎么样?如果您使用my_plugin_wp_setup_nav_menu_item $item->post_content的{​​{1}}值,则可能不需要$item->description过滤器。另外,请确保打印菜单项描述的原始值,而不是使用esc_htmlesc_attr转义它。