カスタムフィールドで絞り込んだ検索フォームでwp_pagenaviが動かないとき

検索フォームをカスタマイズしていたところwp_pagenaviがうまく動かない罠にはまりました。

動かなかったソース

<?php if ($query->have_posts()): ?>
            <?php while ($query->have_posts()) : $query->the_post();
                get_template_part('content', get_post_format());
            endwhile; ?>
        <?php
        if (function_exists('wp_pagenavi')) {
            wp_pagenavi();
        } ?>
    <?php else : ?>
        <?php get_template_part('content', 'none'); ?>
    <?php endif;
    wp_reset_postdata();
 ?>

wp_pagenavi()部分も変更したところ動くようになりました。

動いたソース

<?php if ($query->have_posts()): ?>
            <?php while ($query->have_posts()) : $query->the_post();
                get_template_part('content', get_post_format());
            endwhile; ?>
        <?php
        if (function_exists('wp_pagenavi')) {
            wp_pagenavi( array( 'query' => $query ) );
        } ?>
    <?php else : ?>
        <?php get_template_part('content', 'none'); ?>
    <?php endif;
    wp_reset_postdata();
 ?>

参考:wp_pagenaviを用いたページネーションをする際の注意点