私はTwitter Bootstrapであり、メニューリンクのタグにdata-toggle = "modal"属性を追加する必要があります。ほとんどの結果を検索すると、Twitter Bootstrapドロップダウンメニューのウォーキングを参照しますが、このメニューにはドロップダウンがなく、特定の属性を追加するだけです。
:次の私は、この発見の追加カスタムプラグインなしでメニュー項目に属性、私たちがもはやこれを使用することができます代わりに、長い複雑な歩行を行う必要がなく、3.6以降のWordPressに表示される非常に有用である: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;
}
それは機能しますが、期待どおりにメニュー内のすべてのaタグに属性を追加します。そこで、#menu-item-7857 aなどで1つのメニュー項目をターゲットにする方法を見つけようとしています。
誰もがメニュー項目をターゲットにする例を見つける場所を知っていますか、上記のリンクされた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;
}
}
ただし、あるifコメンターがifステートメントを追加すると、次のエラーが表示されます。
Fatal error: Cannot use object of type WP_Post as array
もっと多くのコードが必要だと思っていますが、失われています。ifステートメントなしのリマインダーとして機能しますが、ターゲットにする1つのリンクではなく、すべてのリンクをターゲットにします。