landbryo
6/1/2018 - 6:14 PM

Custom Query Filter

This WordPress filter and function can be used to sort posts by the second word in the title.

/////////////////////////
// CUSTOM QUERY FILTER //
/////////////////////////

function orderby_lastname($orderby_statement) {
  $orderby_statement = "RIGHT(post_title, LOCATE(' ', REVERSE(post_title)) - 1) ASC";
  return $orderby_statement;
}

// add filter with function before args
add_filter( 'posts_orderby' , 'orderby_lastname' );

// add this when query is done to prevent filter from running everywhere
remove_filter( 'posts_orderby' , 'orderby_lastname' );