Wordpress-如何在wp_列表_页面导航中更改类名

Wordpress-如何在wp_列表_页面导航中更改类名,wordpress,Wordpress,我正在使用Wordpress的wp_列表页面来显示网站上的页面导航 有些页面有子页面,所以我需要在这些链接下面有一个下拉菜单 html是这样的 <ul class=""> <li class="page_item page-item-6 current_page_item"><a href="/">Home</a></li> <li class="page_item page-item-6 current_page

我正在使用Wordpress的wp_列表页面来显示网站上的页面导航

有些页面有子页面,所以我需要在这些链接下面有一个下拉菜单

html是这样的

<ul class="">
    <li class="page_item page-item-6 current_page_item"><a href="/">Home</a></li>
    <li class="page_item page-item-6 current_page_item"><a href="/">Profile</a></li>
    <li class="page_item page-item-8 page_item_has_children dropdown">
        <a href="">Products &#038; Services</a>
        <ul class='children'>
            <li class="page_item page-item-17"><a href="">Buying</a></li>
            <li class="page_item page-item-19"><a href="">Selling</a></li>
            <li class="page_item page-item-23"><a href="">Managing</a></li>
        </ul>
    </li>
</ul>
$args = array(
                    'authors' => '',
                    'child_of' => 0,
                    'date_format' => get_option( 'date_format' ),
                    'depth' => 0,
                    'echo' => 1,
                    'exclude' => '',
                    'include' => '',
                    'link_after' => '',
                    'link_before' => '',
                    'post_type' => 'page',
                    'post_status' => 'publish',
                    'show_date' => '',
                    'sort_column' => 'menu_order, post_title',
                    'sort_order' => '',
                    'title_li' => __( '' ),
                    'walker' => new Wdm_Walker_Page()
                );

echo '<ul class="nav navbar-nav">' . wp_list_pages( $args ) . '</ul>' ;

如何扩展此函数添加其他需要的类来实现此功能,我们不能仅使用过滤器。我们必须扩展WordPress的Walker类

我假设您调用了wp_list_页面,如下所示:

$args = array('authors' => '',
    'child_of' => 0,
    'date_format' => get_option( 'date_format' ),
    'depth' => 0,
    'echo' => 1,
    'exclude' => '',
    'include' => '',
    'link_after' => '',
    'link_before' => '',
    'post_type' => 'page',
    'post_status' => 'publish',
    'show_date' => '',
    'sort_column' => 'menu_order, post_title',
    'sort_order' => '',
    'title_li' => __( '' ),
    'walker' => '',
);

echo '<ul class="nav navbar-nav">' . wp_list_pages( $args ) . '</ul>' ;
$args=array('authors'=>'',
'child_of'=>0,
“日期格式”=>获取选项(“日期格式”),
“深度”=>0,
“echo”=>1,
'排除'=>'',
'包括'=>'',
'链接在'=>''之后,
'链接在'=>''之前,
“post_type”=>“page”,
“发布状态”=>“发布”,
'显示日期'=>'',
“排序列”=>“菜单顺序,帖子标题”,
'排序顺序'=>'',
“title_li'=>”,
“沃克”=>“,
);
echo'
    '。wp_列表_页面($args)。'
';
我们将把值传递给walker Parameter。该参数将是我们现在创建的类的对象。在主题的functions.php或

class Wdm\u Walker\u页面扩展了Walker\u页面{
/**
*@see Walker::start_lvl()
*@自2.1.0以来
*
*@param string$通过引用传递的输出。用于附加其他内容。
*@param int$页面的深度。用于填充。
*@param数组$args
*/
函数start_lvl(&$output,$depth=0,$args=array()){
$indent=str\u repeat(“\t”,$depth);
$output.=“\n$indent
上面的类添加了您想要的所有类

现在,我们需要将这个类的对象传递给wp_list_页面。看起来是这样的

<ul class="">
    <li class="page_item page-item-6 current_page_item"><a href="/">Home</a></li>
    <li class="page_item page-item-6 current_page_item"><a href="/">Profile</a></li>
    <li class="page_item page-item-8 page_item_has_children dropdown">
        <a href="">Products &#038; Services</a>
        <ul class='children'>
            <li class="page_item page-item-17"><a href="">Buying</a></li>
            <li class="page_item page-item-19"><a href="">Selling</a></li>
            <li class="page_item page-item-23"><a href="">Managing</a></li>
        </ul>
    </li>
</ul>
$args = array(
                    'authors' => '',
                    'child_of' => 0,
                    'date_format' => get_option( 'date_format' ),
                    'depth' => 0,
                    'echo' => 1,
                    'exclude' => '',
                    'include' => '',
                    'link_after' => '',
                    'link_before' => '',
                    'post_type' => 'page',
                    'post_status' => 'publish',
                    'show_date' => '',
                    'sort_column' => 'menu_order, post_title',
                    'sort_order' => '',
                    'title_li' => __( '' ),
                    'walker' => new Wdm_Walker_Page()
                );

echo '<ul class="nav navbar-nav">' . wp_list_pages( $args ) . '</ul>' ;
$args=array(
“作者”=>“,
'child_of'=>0,
“日期格式”=>获取选项(“日期格式”),
“深度”=>0,
“echo”=>1,
'排除'=>'',
'包括'=>'',
'链接在'=>''之后,
'链接在'=>''之前,
“post_type”=>“page”,
“发布状态”=>“发布”,
'显示日期'=>'',
“排序列”=>“菜单顺序,帖子标题”,
'排序顺序'=>'',
“title_li'=>”,
“walker”=>新Wdm_walker_页面()
);
echo'
    '。wp_列表_页面($args)。'
';

我希望有帮助!您不再需要在过滤器
page\u css\u class
上编写代码了:

要实现此功能,我们不能仅使用过滤器。我们必须扩展WordPress的Walker类

我假设您调用了wp_list_页面,如下所示:

$args = array('authors' => '',
    'child_of' => 0,
    'date_format' => get_option( 'date_format' ),
    'depth' => 0,
    'echo' => 1,
    'exclude' => '',
    'include' => '',
    'link_after' => '',
    'link_before' => '',
    'post_type' => 'page',
    'post_status' => 'publish',
    'show_date' => '',
    'sort_column' => 'menu_order, post_title',
    'sort_order' => '',
    'title_li' => __( '' ),
    'walker' => '',
);

echo '<ul class="nav navbar-nav">' . wp_list_pages( $args ) . '</ul>' ;
$args=array('authors'=>'',
'child_of'=>0,
“日期格式”=>获取选项(“日期格式”),
“深度”=>0,
“echo”=>1,
'排除'=>'',
'包括'=>'',
'链接在'=>''之后,
'链接在'=>''之前,
“post_type”=>“page”,
“发布状态”=>“发布”,
'显示日期'=>'',
“排序列”=>“菜单顺序,帖子标题”,
'排序顺序'=>'',
“title_li'=>”,
“沃克”=>“,
);
echo'
    '。wp_列表_页面($args)。'
';
我们将把值传递给walker Parameter。那个情人