2014-10-03 4 views
0

я посмотрел всего, как разрешить HTML со ссылками или другими тегами внутри описания меню, но все, что я могу найти, как раздеться теги сWordpress alloow 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; 
} 

но это вывод содержимого страницы в описании меню: \

Любой другой путь вокруг это?

ответ

5

Я думаю, что ваш код должен выглядеть следующим образом:

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 insted of $item->description. Также обязательно распечатайте необработанное значение описания пункта меню, не выходя из него с esc_html или esc_attr.

+0

Это сделало трюк. Я использую '$ item-> description' для вывода описания. Я награду щедростью за 14 часов :) Спасибо! –

+0

Аллилуйя! Спасибо огромное! – maryisdead