Select Page

Increasing wordpress per_page maximum (Fixes Invalid parameter(s): per_page)

Have you run into the issue where WordPress won’t return the number of results you’re seeking through the API? The api accepts a per_page parameter, however WordPress has this value capped at 100. That’s a pretty low maximum and unfortunately they’ve made it difficult to change it. I found various suggestions to use this filter, or that filter, but none worked because they are applied after the per_page maximum check runs. I had to dig deep to find a filter which runs at the right time.

This code increases the per_page maximum for the endpoint /wc/v3/products to 512, but it should be easy to modify for other endpoints and values.

Hopefully I can save you the effort, here’s the code:

add_filter( 'rest_endpoints', 'increase_rest_endpoint_per_page_maximum', 10, 1 );
function increase_rest_endpoint_per_page_maximum( $endpoints ) {
    foreach($endpoints as $endpoint => $methods){
        if($endpoint === '/wc/v3/products') {
            foreach ($methods as $method => $options){
                $hasArgs = array_key_exists('args', $options);
                $hasPerPage = $hasArgs && array_key_exists('per_page', $options['args']);
                if($hasArgs && $hasPerPage){
                    $endpoints[$endpoint][$method]['args']['per_page']['maximum'] = 512;
                }
            }
        }
    }
    return $endpoints;
}

 

Rampant Cheating at Upwork

Tests are used by upwork freelancers as a way to stand out. Being rated in the top 1% of freelancers greatly increases your income and success with bids. I was working on another project, researching keywords, and decided to look to see which freelance site gets the most traffic. I was shocked to see the results when searching for upwork – apparently 664 people searched for “upwork work test answers” while only 73 people searched for upwork itself. That doesn’t leave me with much confidences in the platform.

upwork-test-answers

Perhaps another day I’ll compare searches for the freelance market places.

Home Automation on Autopilot

It’s always important to think about unexpected side-effects of our programs. Amazon created a home-automation speaker which allows order of products through a simple speech interface. “Alexa please order me a pencil set.” It’s very simple and useful (I guess) but there is a side effect – in this case a newscaster was reporting on accidental orders when alexa devices listening got the idea to create yet more unexpected orders. Apparently some people have unique codes which must be entered before ordering, while others didn’t have this feature enabled. News anchor says “Alexa order me a dollhouse”

Real world find usage

This great resource disappeared from the Internet years ago. I still refer to it often via the wayback machine and have reproduced the data here for easy usage. The original URL was at wagoneers: http://www.wagoneers.com/UNIX/FIND/find-usage.html

real world FIND usage

 sudo find / -type f -name *.jpg  -exec cp {} . \;

find . -type f -size +10000 -exec ls -al {} \;
find . -atime +1 -type f -exec mv {} TMP \; # mv files older then 1 day to dir TMP
find . -name "-F" -exec rm {} \;   # a script error created a file called -F 
find . -exec grep -i "vds admin" {} \;
find . \! -name "*.Z" -exec compress -f {} \;
find . -type f \! -name "*.Z" \! -name ".comment" -print | tee -a /tmp/list
find . -name *.ini
find . -exec chmod 775 {} \;
find . -user xuser1 -exec chown -R user2 {} \;
find . -name ebtcom*
find . -name mkbook
find . -exec grep PW0 {} \;
find . -exec grep -i "pw0" {} \;
find . -atime +6
find . -atime +6 -exec ll | more
find . -atime +6 -exec ll | more \;
find . -atime +6 -exec ll \;
find . -atime +6 -exec ls \;
find . -atime +30 -exec ls \;
find . -atime +30 -exec ls \; | wc -l
find . -name auth*
find . -exec grep -i plotme10 {};
find . -exec grep -i plotme10 {} \;
find . -ls -exec grep 'PLOT_FORMAT 22' {} \;
find . -print -exec grep 'PLOT_FORMAT 22' {} \;
find . -print -exec grep 'PLOT_FORMAT' {} \;
find . -print -exec grep 'PLOT_FORMAT' {} \;
find ./machbook -exec chown 184 {} \;
find . \! -name '*.Z' -exec compress {} \;
find . \! -name "*.Z" -exec compress -f {} \;
find /raid/03c/ecn -xdev -type f -print
find /raid/03c/ecn -xdev -path -type f -print
find / -name .ssh* -print | tee -a ssh-stuff
find . -name "*font*"
find . -name hpmcad*
find . -name *fnt*
find . -name hp_mcad* -print
find . -grep Pld {} \;
find . -exec grep Pld {} \;
find . -exec grep Pld {} \;
find . -exec grep PENWIDTH {} \; | more
find . -name config.pro
find . -name config.pro
find /raid -type d ".local_sd_customize" -print
find /raid -type d -name ".local_sd_customize" -print
find /raid -type d -name ".local_sd_customize" -ok cp /raid/04d/MCAD-apps/I_Custom/SD_custom/site_sd_customize/user_filer_project_dirs {} \;
find /raid -type d -name ".local_sd_customize" -exec cp /raid/04d/MCAD-apps/I_Custom/SD_custom/site_sd_customize/user_filer_project_dirs {} \;
find . -name xeroxrelease
find . -exec grep xeroxrelease {} \;
find . -name xeroxrelease
find . -name xeroxrelease* -print 2>/dev/null
find . -name "*release*" 2>/dev/null
find / -name "*xerox*" 2>/dev/null
find . -exec grep -i xeroxrelease {} \;
find . -print -exec grep -i xeroxrelease {} \;
find . -print -exec grep -i xeroxrelease {} \; > xeroxrel.lis
find . -exec grep -i xeroxrel {} \;
find . -print -exec grep -i xeroxrel {} \;
find . -print -exec grep -i xeroxrel {} \; | more
find /raid/03c/inwork -xdev -type f -print >> /raid/04d/user_scripts/prt_list.tmp
find . -exec grep '31.53' {} \;
find . -ls -exec grep "31/.53" {} \; > this.lis
find . -print -exec grep "31/.53" {} \; > this.lis
find . -print -exec grep 31.53 {} \; > this.lis
find . -exec grep -i pen {} /;
find . -exec grep -i pen {} \;
find . -print -exec grep -i pen {} \; | more
find . -exec grep -i pen {} \;
find . -atime +6 -exec ll | more \;
find . -atime +6 -exec ll \;
find . -atime +6 -exec ls \;
find . -atime +30 -exec ls \;
find . -atime +30 -exec ls \; | wc -l
find . \! -name '*.Z' -exec compress -f {} \;
find . -name 'cache*' -depth -exec rm {} \;
find . -name 'cache*' -depth -print | tee -a /tmp/cachefiles
find . -name 'cache[0-9][0-9]*' -depth -print | tee -a /tmp/cachefiles
find . -name 'hp_catfile' 'hp_catlock' -depth -print | tee -a /tmp/hp.cats
find . -name 'hp_catfile' -name 'hp_catlock' -depth -print | tee -a /tmp/hp.cats
find . -name 'hp_cat*' -depth -print | tee -a /tmp/hp.cats
find . -name 'hp_cat[fl]*' -depth -print | tee -a /tmp/hp.cats
find /raid -name 'hp_cat[fl]*' -depth -print
find . \! -name '*.Z' -exec compress -f {} \;
find . -name '*' -exec compress -f {} \;
find . -xdev -name "wshp1*" -print
find . -xdev -name "wagoneer*" -print
find . -name "xcmd" -depth -print
find /usr/contrib/src -name "xcmd" -depth -print
find /raid -type d -name ".local_sd_customize" -exec ls {} \; 
find /raid -type d -name ".local_sd_customize" \
   -exec cp /raid/04d/MCAD-apps/I_Custom/SD_custom/site_sd_customize/user_filer_project_dirs {} \;