好吧,我自己找到了解决办法。我用了WordPress钩子parse_query
. 这是我发现的最精确的东西。在这个钩子中,我检查它是否是后端,我的用户是否有我之前添加的名为“organizer\\u id”的元数据。但这只是为了获得筛选列表所需的organizer\\u id。
代码如下:
add_filter( \'parse_query\', \'ozz_filter_events_by_organizer\' );
function ozz_filter_events_by_organizer( $query ) {
$current_user = wp_get_current_user();
$organizer_id = get_user_meta( $current_user->ID, \'organizer_id\' );
if ( is_admin() and $query->query[\'post_type\'] == \'tribe_events\' and !empty( $organizer_id ) ) {
$qv = &$query->query_vars;
$qv[\'meta_query\'][] = array(
\'field\' => \'_EventOrganizerID\',
\'value\' => $organizer_id
);
//echo \'<pre>\' . print_r( $qv, true ) . \'</pre>\';
}
}
因此,每当站点上有查询时,这个过滤器挂钩就会触发。不是很方便,但我能找到最好的。因此,当它特别考虑后端的事件列表时,它允许我过滤查询。