0

私はこれを持っていますfunction

function my_walker_nav_menu_start_el($item_output, $item, $depth, $args) {
    // you can put your if statements in here (use item, depth and args in conditions)
    $item_output = preg_replace('/<a /', '<a class="your-class" ', $item_output, 1);
    return $item_output;
}
add_filter('walker_nav_menu_start_el', 'my_walker_nav_menu_start_el', 10, 4);

メニュー内のすべてのクラスにクラスを設定しているため、これは正常に機能anchorsしています。問題は、すべてのアンカーに同じクラスを設定していることです。アンカーごとに異なるクラスが必要です。それは可能ですか?もしそうなら、どうすればこれを行うことができますか?

編集->次のようにしたい:

<li><a class="icon-bird"></a></li>
<li><a class="icon-book"></a></li>
<li><a class="icon-red"></a></li>
4

2 に答える 2

0

$itemあなたの値(鳥、本、赤など)が含まれていると仮定します:

function my_walker_nav_menu_start_el($item_output, $item, $depth, $args) {
    $item_output = preg_replace('/<a /', '<a class="item-' . $item . '"', $item_output, 1);
    return $item_output;
}
add_filter('walker_nav_menu_start_el', 'my_walker_nav_menu_start_el', 10, 4);
于 2013-07-29T14:59:35.773 に答える
0

上記のコードを使用していくつかの変更を加えたところ、うまくいきました。以下の手順で試すことができます。

以下の手順に従ってください。

ステップ 1 : wp-admin で、[外観] -> [メニュー] に移動し、「CSS クラス (オプション)」のメニュー項目にクラスを配置します。メニュー項目に「CSS クラス (オプション)」が表示されない場合は、画面の右上に「画面オプション」があり、「高度なメニュー プロパティを表示する」の下に「CSS クラス」オプションがあります

ステップ 2:それらの下に folder/function.php の下にコードを追加します。

 function my_walker_nav_menu_start_el($item_output, $item, $depth, $args) {
    $class= $item->classes['0'];
    $item_output = preg_replace('/<a /', '<a class="'.$class.'"', $item_output, 1);
    return $item_output;
 }
add_filter('walker_nav_menu_start_el', 'my_walker_nav_menu_start_el', 10, 4);

上記のコードが機能することを願っています。それでも機能しない場合はお知らせください。

于 2015-03-29T22:22:16.690 に答える