我正在尝试根据导航菜单查询帖子。 即我在导航菜单中获取第一项的对象ID,并希望以这种方式查询帖子,
以下是代码。
从导航菜单中获取第一个项目
function get_theme_item( $theme_location ) {
if( ! $theme_location ) return false;
$theme_locations = get_nav_menu_locations();
if( ! isset( $theme_locations[$theme_location] ) ) return false;
$menu_obj = get_term( $theme_locations[$theme_location], 'nav_menu' );
if( ! $menu_obj ) return false;
$menu_items = wp_get_nav_menu_items($menu_obj->term_id);
foreach ($menu_items as $menu_item) {
$qid = $menu_item->object_id;
break;
}
return $qid;
}
嗯,这完美无缺,并返回第一个菜单项的id。
查询帖子代码:
function p_query_posts($query) {
$id = get_theme_item('header_menu');
if ( $query->is_main_query() && is_front_page() ) {
$query->set( 'post_type', array( 'album_post' ) );
$taxquery = array(
array(
'taxonomy' => 'album',
'field' => 'id',
'terms' => array($id)
)
);
$query->set( 'tax_query', $taxquery );
}
return $query;
}
add_action('pre_get_posts','p_query_posts');
问题:
这给了我500内部服务器错误,没有显示任何错误。
如果我将$id
更改为12,即$id = '12'
,则它可以正常运行。
任何帮助表示感谢。