我有一个页眉和一个页脚菜单(它们是相同的:主菜单)。当我在页面上时,wordpress会添加如下类current_page_menu
. 但在我使用query_posts()
功能菜单after 此函数没有像这样添加那些类current_page_menu
等
以下是导致该错误的代码:
<?php
$title_slug = strtolower(str_replace( " ", "-" , the_title_attribute(\'echo=0\') ) );
$id_obj = get_category_by_slug($title_slug);
$cat_id = $id_obj->term_id;
query_posts( \'cat=\'.$cat_id.\'&post_status=publish,future&paged=\'.get_query_var(\'paged\') );
?>
不过,这段代码非常有用。因为它确保通过添加页面并选择类别页面模板(而不仅仅是指向该类别的链接)来创建类别页面。我必须这样做,因为我的分类页面需要有子页面。
如果有人知道一个解决方案,我将不胜感激!
最合适的回答,由SO网友:Tunji 整理而成
问题是由query_posts
函数,此函数更改全局$wp\\u查询,菜单遍历器使用该查询检查和添加类,如current_page_menu
至菜单项。
一种解决方案是编写一个新的自定义查询并循环执行,而不是使用query_posts
.
$title_slug = strtolower(str_replace( " ", "-" , the_title_attribute(\'echo=0\') ) );
$id_obj = get_category_by_slug($title_slug);
$cat_id = $id_obj->term_id;
$args = \'cat=\'.$cat_id.\'&post_status=publish,future&paged=\'.get_query_var(\'paged\');
// The Query
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) : ?>
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
//YOUR CONTENT
<?php endwhile; ?>
/* Restore original Post Data */
<?php wp_reset_postdata(); ?>
<?php endif; ?>
References: