所以我有以下习惯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()
?
最合适的回答,由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;
}
由于我不熟悉您正在使用的确切元素,我无法为您编写正则表达式。理论上,遵循这些步骤应该对你有用。