if( !empty( $article ) && !empty( ($post = get_post( $article )) ) ) {
$articles[] = $post;
}
До PHP 5.5 empty() проверяет только переменные, и попытка проверить что-то еще вызовет ошибку синтаксиса. Другими словами, следующий код не будет работать: empty(trim($name)). Используйте вместо него trim($name) == false.
$post = get_post($article);
if(!empty($article ) && !empty($post) ) {
$articles[] = $post;
}