Грубо:
$categories= get_categories('child_of= MainCategory3');
$cat_iskom_id = null;
if( $categories ){
foreach( $categories as $cat ){
$cat_meta = get_option("category_$cat->term_id");
$cat_custom_field_value = $cat_meta['custom_field_value'];
if($cat_custom_field_value == "custom2") {$cat_iskom_id=$cat->term_id;}
}
}
if(!empty($cat_iskom_id))
{
$query_user = new WP_Query( array( 'posts_per_page' => '-1','cat' => '$cat_iskom_id') );
}
Примерно так, может что то можно оптимизировать, делал быстро может где то что то пропустил, но механизм понятен.