2016-02-08 1 views
5

Я видел некоторые подобные вопросы здесь, на StackOverflow, но мой немного отличается ..Добавить пользовательские данные атрибутов в Wordpress меню навигации

мне нужно, чтобы иметь возможность добавить пользовательский атрибут данных в WordPress меню. Проблемы у меня есть то, что все решения я нашел, как, например, следующее:

add_filter('nav_menu_link_attributes', 'my_nav_menu_attribs', 10, 3); 
function my_nav_menu_attribs($atts, $item, $args) 
{ 
    // The ID of the target menu item 
    $menu_target = 365; 

    // inspect $item 
    if ($item->ID == $menu_target) { 
    $atts['data-reveal-id'] = 'myModal'; 
    } 
    return $atts; 
} 

позволяет добавлять один и тот же атрибут для всех пунктов меню. Что мне нужно, на самом деле является способом добавления одного и того же атрибута данных, но с разными значениями для каждого элемента в списке.

это довольно много, что мне нужно для того чтобы достигнуть:

<ul id="myMenu"> 
    <li data-menuanchor="firstPage" class="active"><a href="#firstPage">First section</a></li> 
    <li data-menuanchor="secondPage"><a href="#secondPage">Second section</a></li> 
    <li data-menuanchor="thirdPage"><a href="#thirdPage">Third section</a></li> 
    <li data-menuanchor="fourthPage"><a href="#fourthPage">Fourth section</a></li> 
</ul> 

, потому что мне нужно использовать этот плагин здесь: https://github.com/alvarotrigo/fullPage.js#fullpagejs

какие-либо советы?

Благодаря

+0

Я пытаюсь сделать точный то же самое. Вы нашли решение? – Nemus

+1

Да. В конце мне удалось решить это с помощью javascript. Я пишу ответ сейчас, и я опубликую здесь, чтобы вы посмотрели – Nick

ответ

1

В конце концов, мне удалось решить это с помощью javascript.

Это то, что я сделал:

(function() { 
    var arrayList, key, val; 

    arrayList = ['first', 'second', 'third', 'fourth']; 

    for (key in arrayList) {if (window.CP.shouldStopExecution(1)){break;} 
    val = arrayList[key]; 
    console.log("key is " + key + " and val is " + val); 
    $('li').each(function(index) { 
     if (parseInt(index) === parseInt(key)) { 
     return $(this).attr('data-anchor', val); 
     } 
    }); 
    } 
window.CP.exitedLoop(1); 


}).call(this); 
  • Создать массив с данными, вам нужен
  • Foreach цикл для перебора корыта массива
  • Внутри этого цикл, цикл корыта пунктов меню
  • Если индекс меню совпадает с индексом массива, добавьте значение массива в качестве атрибута.

Вот codepen пример, а также: http://codepen.io/NickHG/pen/GmKqqE

1

Я предполагаю, что решение было бы расширить элементы навигации. Я сделал это раньше, чтобы добавить значки в пункты меню.

Посмотрите здесь - вместо Subheadline вы Cann назвать поле «anchortarget» (или что-нибудь еще) и назвать его в меню ... http://www.wpexplorer.com/adding-custom-attributes-to-wordpress-menus/

Если вам нужны дополнительные советы, вы должны google для «wordpress + menu + custom field».

Надеюсь, это вам поможет. Все самое лучшее

+0

Я попытался загрузить финальный плагин, чтобы проверить, как работает стиль субтитров и как работает плагин, но я не думаю, что это работает. У меня вообще нет «субтитров». Вы уверены, что это все еще актуально с помощью обновлений Wordpress? поскольку плагиновые швы должны быть не менее 2 лет. – Nick

+0

Эй, Ник, если вы идете в Design> Menues (может быть, это другое имя на вашем языке или английском языке, у меня просто открыта немецкая версия, но в основном сайт, на котором вы можете редактировать свои меню) вы можете щелкнуть по панели в правом верхнем углу (в немецкой версии она называется «Ansicht anpassen»). Думаю, вы не выбрали новый вариант, верно? Вы также можете добавлять поля, такие как ссылка target (fe blank), css, XFN, ... – ThomasB

+0

Да, я знаю, я фактически добавил субтитры надлежащим образом, это просто не отображается вообще ... И это бит я не могу понять, почему .. – Nick

1

Хорошо, я сожалею. Я бы опубликовал код, который я написал для своих значков, но код ist 400 строк с ходунки и прочее. Но, как вам кажется, вы используете фундамент, вы должны отправиться сюда ->https://www.smashingmagazine.com/2015/10/customize-tree-like-data-structures-wordpress-walker-class/

Даже если вы не знаете о крючках php или wordpress, этот учебник полностью объяснит каждый шаг, необходимый для его кодирования вручную. Он работает, я просто протестировал его на своем сайте, скопировав/вставив его.

Если вы прокрутите вниз, вы увидите скриншоты - они добавили поле значков (почти как я), как они это сделали и как они его используют. Увидев это, честно говоря, я сожалею, что все это сделал сам. Это было больно - это просто работает как шарм ....

+0

Я хорошо знаком с Wordpress, чтобы быть справедливым, я просто хотел знать, есть ли способ сделать это без необходимости писать полный плагин. Я собираюсь посмотрите на ссылку, которую вы предложили. Спасибо, я позволю тебе knew – Nick

+0

Хорошо, это швы очень подробные. Еще раз спасибо за вашу помощь и поддержку. – Nick

Смежные вопросы