Skip to content

Instantly share code, notes, and snippets.

  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save mvaneijgen/27403ef978a25153e7255a38e10286a9 to your computer and use it in GitHub Desktop.
Shows how to add a custom order value to a connection to order by a custom field.
<?php // open PHP
add_filter( 'graphql_PostObjectsConnectionOrderbyEnum_values', function( $values ) {
$values['LIKE_COUNT'] = [
'value' => 'like_count',
'description' => __( 'The number of likes on the post', 'wp-graphql' ),
];
return $values;
} );
add_filter( 'graphql_post_object_connection_query_args', function( $query_args, $source, $input ) {
if ( isset( $input['where']['orderby'] ) && is_array( $input['where']['orderby'] ) ) {
foreach( $input['where']['orderby'] as $orderby ) {
if ( ! isset( $orderby['field'] ) || 'like_count' !== $orderby['field'] ) {
continue;
}
$query_args['meta_key'] = 'like_count';
$query_args['orderby'] = 'meta_value_num';
$query_args['order'] = $orderby['order'];
}
}
return $query_args;
}, 10, 3);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment