0

チュートリアルに従って、Wordpressテンプレートから始めています.htmlとcssは知っていますが、phpは知りません:(

次のコードで、class="nav navbar-nav"のclass="menu"を変更します (これは Twitter のブートストラップに必要なクラスであるため)。

<ul id="menu-menu-principal" class="menu">
<li class="active">
<a href="http://localhost/?page_id=12">Quiénes somos</a>
</li>
</ul>

どのようにできるのか?fuctions.phpで?どのように?次のコードで li クラスを変更できますが、class="menu" は変更できません。

    add_filter('nav_menu_css_class', 'my_css_attributes_filter', 100, 1);
    add_filter('nav_menu_item_id', 'my_css_attributes_filter', 100, 1);
        function my_css_attributes_filter($var) {
            if(is_array($var)){
                $varci= array_intersect($var, array('current-menu-item'));
                $cmeni = array('current-menu-item');
                $selava   = array('active');
                $selavaend = array();
                $selavaend = str_replace($cmeni, $selava, $varci);
            }
            else{
                $selavaend= '';
            }
        return $selavaend;
        }
4

1 に答える 1

1

walker クラス ありhttp://wpti.ps/functions/extending-wordpress-walker-class/ http://resources.mdbitz.com/2010/08/creating-a-wordpress-custom-page-walker/

Walker は wp_list_pages に HTML をレンダリングします。walk、start_lvl、end_lvl、start_el、end_el の 5 つの関数を使用します。

walk は、基本的に、順序付けられていないリストとリスト項目を内部に作成するために必要な出力を開始します。

start_lvl は、要素が前の要素の子であり、各要素の出力が start_el で始まるときに呼び出されます

wp-includes/classes.php のソース コードでわかるように、start_lvl は通常、順序付けされていないリストの開始を出力し、それにクラス「子」を与え、end_lvl は順序付けられていないリストを閉じます。これら 2 つの start_el と end_el 内で開いて閉じます。リスト項目を表示し、その間にタイトルやリンクなどを表示するために必要なすべての html を出力します。

また

walk この関数は要素の配列をステップ実行し、それぞれに必要な start/end_lvl および start/end_el 関数を呼び出します。基本的なロジックは次のとおりです。エレメントが前のエレメントの子である場合、start_lvl を呼び出します。各要素に対して、start_el に続いて end_el を呼び出します。要素が子要素でなくなった場合は、end_lvl を呼び出します。

start_lvl は、子要素を含む HTML 要素の開始タグを出力に連結します。end_lvl は、子要素を含む HTML 要素の終了タグを出力に連結します。start_el は、オブジェクトの HTML 表現から終了 HTML タグを除いたものを出力に連結します。end_el は、オブジェクトの HTML 終了タグ要素を連結します。出力に。

于 2013-08-06T18:37:05.160 に答える