Search code examples
google-custom-search

How can I change result per page in Google Custom Search with query parameters?


I need to implement site search system with Google Custom Search or Google Site Search.

(Now I use Custom Search on Local, But I use Site Search when production server worked)

I must implement change result per page program.

I think that could do with query parameters like this.

<div>
<a href="/result?q=test&num=10">10</a>
<a href="/result?q=test&num=20">20</a>
<a href="/result?q=test&num=30">30</a>
</div>

But result per page always bring me back just 10 per page.

Anyone know ideas?


Solution

  • That's able to do like this.

    <?php
    $q = $_GET['q'];
    $num = $_GET['num'];
    if(empty($num)){
        $num = 10;
    }
    ?>
    
    <div id="gsc">
        <script>
          (function() {
            var cx = '(My API Key)';
            var gcse = document.createElement('script');
            gcse.type = 'text/javascript';
            gcse.async = true;
            gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
            var s = document.getElementsByTagName('script')[0];
            s.parentNode.insertBefore(gcse, s);
          })();
       </script>
       <gcse:searchbox-only resultsUrl="?num=<?php echo $num; ?>" filtered_cse=1></gcse:searchbox-only>
    </div>
    
    <ul>
        <li><a href="?num=10&q=<?php echo $q; ?>">10</a></li>
        <li><a href="?num=20&q=<?php echo $q; ?>">20</a></li>
        <li><a href="?num=30&q=<?php echo $q; ?>">30</a></li>
    </ul>
    
    <div id="results">
        <gcse:searchresults-only webSearchResultSetSize="<?php echo $num; ?>"></gcse:searchresults-only>
    </div>