我正在尝试从自定义帖子类型构建一个三级菜单,并希望从帖子儿童和家长构建一个完整的三级菜单,包括上下所有级别。
实际上是函数wp_list_pages()
这真的很棒,实际上包括了我想要的所有级别。
但我还想稍微修改一下查询,并排除一些适合元查询的帖子,我正在使用另一个类似这样的地方:
$meta_query[] = array(
\'relation\' => \'or\',
array(
\'key\' => \'rank\',
\'compare\' => \'<=\',
\'type\' => \'NUMERIC\',
\'value\' => 100,
),
array(
\'key\' => \'rank\',
\'compare\' => \'NOT EXISTS\',
\'value\' => 1,
),
);
唯一的问题是
wp_list_pages()
不支持meta\\u查询,只查找特定的meta键和值。
是否有人对此有解决方案,或者有想法将目标归档?
SO网友:bymem
因此,我通过添加一个过滤器使其工作:
我在wp\\u list\\u页面之前添加了这个
add_filter( \'get_pages\', \'check_propper_rank\', 10, 2 );
wp_list_pages( array(
\'post_type\' => \'wiki-term\',
) );
然后创建了一个新的过滤器,以删除那些不符合排名的过滤器。
function check_propper_rank( $pages, $arguments ) {
$user_rank = 100;
foreach ( $pages as $key => $page ) {
$required_rank = get_post_meta($page->ID, \'rank\', true);
if ( $required_rank >= $user_rank ) {
unset($pages[$key]);
}
}
if ( empty( $pages ) )
return $pages;
// Remove instantly
remove_filter( current_filter(), __FUNCTION__, 10 );
return $pages;
}