Modifying the entries displayed in a View
This code is meant for developers only. If you are just trying to filter View results, please use the Advanced Filter extension instead, which doesn’t require any coding skills.
GravityView provides the gravityview/view/entries filter which can be used to modify entries before they are displayed on the View.
Below is a code snippet that can be used as a boilerplate for custom modifications:
add_filter( 'gravityview/view/entries', 'gv_filter_gravityview_view_entries', 10, 3 );
/**
*
* @param GVEntry_Collection $entries The entries for this view.
* @param GVView $view The view.
* @param GVRequest $request The request.
*
* @return GVEntry_Collection
*/
function gv_filter_gravityview_view_entries( $entries, $view = null, $request = null ) {
// Only filter entries for View #123
if( 123 !== $view->ID ) {
return $entries;
}
if( ! $entries instanceof GVEntry_Collection ) {
return $entries;
}
// There's no way to remove entries from a collection; instead, we just create a new one
$return = new GVEntry_Collection();
foreach( $entries->all() as $entry ) {
// Your custom code here!
}
return $return;
}