Для мультисайтов, если это не корневой сайт, вы можете получить префикс с $wpdb->get_blog_prefix($blog_id)
Тогда вы можете сделать
$base_prefix = $wpdb->get_blog_prefix($123);
$restriction .= " AND post.ID NOT IN (SELECT object_id FROM {$base_prefix}term_relationships AS tr, {$base_prefix}term_taxonomy AS tt WHERE tr.term_taxonomy_id = tt.term_taxonomy_id AND tt.parent NOT IN (13, 14, 15)) ";
Если это корневой сайт, вы можете использовать $wpdb->base_prefix
.
$restriction .= " AND post.ID NOT IN (SELECT object_id FROM {$wpdb->base_prefix}term_relationships AS tr, {$wpdb->base_prefix}term_taxonomy AS tt WHERE tr.term_taxonomy_id = tt.term_taxonomy_id AND tt.parent NOT IN (13, 14, 15)) ";
Если это текущий веб-сайт в мультисайте:
$restriction .= " AND post.ID NOT IN (SELECT object_id FROM {$wpdb->prefix}term_relationships AS tr, {$wpdb->prefix}term_taxonomy AS tt WHERE tr.term_taxonomy_id = tt.term_taxonomy_id AND tt.parent NOT IN (13, 14, 15)) ";
P.S. $wpdb->prefix
и $wpdb->base_prefix
являются строками , вы не можете сделать $wpdb->prefix->term_relationships
. Однако вы можете сделать что-то вроде $wpdb->term_relationships
, которое даст вам полное имя таблицы term_relationships (например, если префикс wp_, вы получите wp_term_relationships)