Я Twitter Bootstrap і мені потрібно додати атрибут data-toggle = "modal" до тегу посилання на меню. Під час пошуку більшості всіх посилань на результати робиться прогулянка до випадаючих меню Twitter Bootstrap, однак у цьому меню немає спадних меню, і мені потрібно лише додати певний атрибут.
Далі я виявив це: додайте спеціальні атрибути до пунктів меню без плагіна, що дуже корисно, оскільки це з'являється у WordPress 3.6+ і більше нам не потрібно робити довгі складні ходунки, а натомість ми можемо використовувати це: http://codex.wordpress.org/Plugin_API / Filter_Reference / nav_menu_link_attributes
Однак на цей час цей посилання на API досить голий і не дає прикладів, а оскільки він такий новий, в Google дуже мало посилань на нього.
Я спробував це спочатку:
add_filter( 'nav_menu_link_attributes', 'mywp_contact_menu_atts', 10, 3 );
function pb_contact_menu_atts( $atts, $item, $args )
{
// inspect $item, then …
$atts['data-toggle'] = 'modal';
return $atts;
}
але це працює, проте, як очікується, додає атрибут до всіх тегів у меню. Тому я намагаюся розібратися, як націлити на один пункт меню за допомогою # menu-item-7857 a або іншого.
Хтось знає, де можна знайти приклад націлювання на пункт меню або зможе визначити, як базуватись на інформації, що міститься у вищезазначеній посилання API?
Зауважимо, я знайшов наступний приклад, але він націлений лише на предмети, у яких є діти, що не допомагає, але може бути в правильному напрямку:
add_filter('nav_menu_link_attributes', function($atts, $item, $args) {
if ( $args->has_children )
{
$atts['data-toggle'] = 'dropdown';
$atts['class'] = 'dropdown-toggle';
}
return $atts;
}, 10, 3);
ОНОВЛЕННЯ - Єдина відповідь нижче звучить так, ніби вона є на чомусь, але з цього не вдалося визначити, як насправді знайти номер для націлювання на моє конкретне посилання та де / як додати це умовне у робочому прикладі. Додав коментар, але не почув. Оскільки минуло 18 днів, я думав, що побачу, чи допоможе щедрість.
Переглядаючи код посилання, на який я хочу націлити:
<li id="menu-item-7858" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7858"><a href="#" data-toggle="modal">Chat</a></li>
Я бачу число 7858, тому думаю, можливо, це саме число, на яке я повинен орієнтуватися.
Але коли я намагаюся, наприклад:
add_filter( 'nav_menu_link_attributes', 'my_chat_menu_atts', 10, 3 );
function my_chat_menu_atts( $atts, $item, $args ) {
if ( 7857 == $item['ID'] ) {
// inspect $item, then …
$atts['onclick'] = 'SnapEngage.startLink();';
return $atts;
}
}
Однак додаю, що якщо оператор запропонував один коментатор, я отримаю таку помилку:
Fatal error: Cannot use object of type WP_Post as array
Я припускаю, що потрібно більше коду, але втрачено. Як нагадування без оператора if він працює, проте він орієнтований на всі посилання, а не на одне посилання, на яке я хочу націлити.