我在借用密码Add filter menu to admin list of posts (of custom type) to filter posts by custom field values 要将筛选器添加到我的自定义帖子类型,请使用parse_query
过滤器:
function grievance_posts_filter( $query ){
global $pagenow;
$type = \'post\';
if (isset($_GET[\'post_type\'])) {
$type = $_GET[\'post_type\'];
}
if ( \'grievance\' == $type && is_admin() && $pagenow==\'edit.php\' && isset($_GET[\'step\']) && $_GET[\'step\'] != \'\') {
$query->query_vars[\'meta_key\'] = \'my_first_plugin_fields[step]\';
$query->query_vars[\'meta_value\'] = 2;
}
}
add_filter( \'parse_query\', \'grievance_posts_filter\' );
在上面的代码中,我硬编码了
meta_value
进行故障排除。我希望上面的代码只显示带有
step
值设置为“2”。但是,不是过滤帖子,而是编辑。php页面根本没有显示任何帖子。我认为我没有使用正确的值
meta_key
和
meta_value
元素。我不知道该放什么。我的meta\\u键有多个子键与之关联。
我也尝试过:
$query->query_vars[\'meta_key\'] = \'my_first_plugin_fields\';
$query->query_vars[\'meta_value\'] = array( \'step\' => 2 );
但这也不起作用。
我还尝试:
$meta = [ \'my_first_plugin_fields\' => [ \'key\' => \'step\', \'value\' => \'2\', \'compare\' => \'=\' ] ] ;
$query->query_vars[\'meta_query\'] = $meta;
没有成功。