I need to create a custom query for the author archive (where the author is post_author OR is a meta co_author), and it have to work with WP Pagenavi.

The query is something like this (omitting $wpdb and usual clauses for clarity):

    SELECT posts.*
    FROM posts, postmeta
    WHERE
        posts.ID = postmeta.post_id AND
        (posts.post_author = $author OR
            (postmeta.meta_key = 'co_author' AND
             postmeta.meta_value = $author)
        )

I've already tried with no success:

 - using LIMIT and OFFSET with `query_var($paged)` and `'posts_per_page'` option, but Pagenavi total pages are the same as the query was the default author archive one;
 - adding a where filter (`' OR posts.post_author = $author'`) to a custom WP_Query checking for meta_key/value only, but Pagenavi completely disregards the filter;
 - other stuff I actually cannot remember because I've tried them last night between 3 and 5 AM but I'm sure they didn't work...

The actual problem is that I can't find a way to check "meta_query OR post_author" using just the WP_Query argument array, like:

    $the_query = new WP_Query(array(
        'post_author'    => $author,
        /* OR */
        'meta_query'     => array(
            array(
                'key'    => 'co_author',
                'value'  => $author
            )
        )
    ));

Unfortunately, I'm not really confident with query filters so I'm really really trying to find a simple workaround to make that work with Pagenavi. But, after plenty of hours on this issue, my mind isn't fresh anymore and I don't know how to proceed.

Thank you all in advance.