我正在WP管理员上制作帖子过滤功能。第一个过滤功能起作用,但第二个不起作用。我怀疑它来自$where .=
,所以我尝试删除第一个,只显示第二个过滤器。但是不起作用。是因为$wpdb
函数不正确吗?
function post_filter($where) {
if (is_admin()) {
global $wpdb;
if (isset($_GET['metakey_first']) && !empty($_GET['metakey_first']) && intval($_GET['metakey_first']) != 0) {
$metakey_first = intval($_GET['metakey_first']);
$where. = " AND ID IN (SELECT post_id FROM ".$wpdb - > postmeta."
WHERE meta_key='metakey_first' AND meta_value=$metakey_first)";
}
if (isset($_GET['metakey_second']) && !empty($_GET['metakey_second']) && intval($_GET['metakey_second']) != 0) {
$metakey_second = intval($_GET['metakey_second']);
$where. = " AND ID IN (SELECT post_id FROM ".$wpdb - > postmeta."
WHERE meta_key='metakey_second' AND meta_value=$metakey_second)";
}
}
return $where;
}
add_filter('posts_where', 'post_filter');