如何将‘CURRENT_PAGE_ITEM’类应用于`wp_list_ages()`中的存档页面?

时间:2011-10-12 作者:Isaac Lubow

所以我有以下习惯wp-query 在我的网站上工作:

function custom_front_page($wp_query){
    if($wp_query->get(\'page_id\')==get_option(\'page_on_front\')){
        $wp_query->set(\'post_type\',\'album\');
        $wp_query->set(\'page_id\',\'\'); // empty
        // fix conditional functions
        $wp_query->is_page = false;
        $wp_query->is_front_page = true;
        $wp_query->is_archive = true;
        $wp_query->is_post_type_archive = true;
    }
}
add_action(\'pre_get_posts\',\'custom_front_page\');
但是,以这种方式更改查询会使页面链接保持在wp_list_pages() nav从接收current_page_item 类(它不再认为它是一个页面)。

我怎么才能避开这个?

PS我知道我可以创建一个单独的链接并有条件地应用该类,但是有没有办法更改上面的函数,或者调用wp_list_pages()?

1 个回复
最合适的回答,由SO网友:Brian Fegter 整理而成

您可以使用以下筛选器:

add_filter(\'wp_list_pages\', \'foo_bar\');
function foo_bar($html){
    //Create a regex pattern to identify the LI element with preg_match
    //Create another pattern to identify the class attr and alter it with preg_replace
    return $html;
}
由于我不熟悉您正在使用的确切元素,我无法为您编写正则表达式。理论上,遵循这些步骤应该对你有用。

结束