我想要使用自定义元字段的特定值排除每个帖子。 问题是,并非每个帖子都有这个元字段。
我的代码看起来像这样(工作循环的摘录):
// WP_Query arguments
$args = array (
'post_parent' => $parentid,
'orderby' => 'menu_order',
'order' => 'ASC',
'post_type' => array( 'page' ),
'meta_query' => array(
array(
'key' => 'hide',
'value' => 1,
'compare' => '!='
)
)
);
并非每个帖子都使用该字段"隐藏"。一些帖子给出了一个NULL。 所以我认为,循环因为这个而不起作用?!
这是对的吗?是否有必要每个帖子都有该密钥的值?
答案 0 :(得分:4)
另一种方法:
BottomNavigationBarItem(
activeIcon: ShaderMask(
shaderCallback: (Rect bounds) {
return RadialGradient(
center: Alignment.topLeft,
radius: 0.5,
colors: <Color>[Colors.red, Colors.yellow],
tileMode: TileMode.repeated,
).createShader(bounds);
},
child: Icon(FontAwesomeIcons.home, ***color: Colors.white***),
),
icon: new Icon(FontAwesomeIcons.home, color: Colors.grey),
title: new Text('Home'),
),
答案 1 :(得分:2)
尝试通过以下代码段来检查您的SQL语句。
$customPosts = new WP_Query($yourArgs);
echo "Last SQL-Query: {$customPosts->request}";
答案 2 :(得分:1)
这是旧文章,但无论如何都要回答。此问题中的元查询将仅返回具有该元键的帖子的结果。要还返回根本没有该元关键字的帖子,您需要一个附加的元查询。示例:
// WP_Query arguments
$args = array (
'post_parent' => $parentid,
'orderby' => 'menu_order',
'order' => 'ASC',
'post_type' => array( 'page' ),
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'hide',
'value' => 1,
'compare' => '!='
),
array(
'key' => 'hide',
'compare' => 'NOT EXISTS'
)
)
);
请注意使用“关系”和第二个元查询,其比较值为“ NOT EXISTS”。