Posted on

Moving the admin search page

Jules Colle came up with a method of moving the Relevanssi admin search page from under the Dashboard heading to the top level of the admin menu.

add_action( 'admin_menu', function () {
  remove_submenu_page( 'index.php', 'relevanssi_admin_search' );
  add_menu_page(
    'Search all content',
    'Search all content',
    'manage_options',
    'relevanssi_admin_search',
    'relevanssi_admin_search_page',
    'dashicons-search',
    2
  );
}, 99 );

This function adds an admin_menu action that first uses remove_submenu_page() to remove the existing admin search function and then add_menu_page() to add it again on the top menu level.

This works well except for one thing. The Relevanssi admin javascript is added only to specific pages, and the new location of the admin search page is not one of those.

This problem was solved in version 2.13 (Premium) and 4.11 (free version), when the filter hook relevanssi_acceptable_hooks was introduced. This filter hook lets you add new admin page hooks where Relevanssi javascript is used, so we can introduce our new admin search page:

add_filter( 'relevanssi_acceptable_hooks', function( $hooks ) {
    $hooks[] = 'toplevel_page_relevanssi_admin_search';
    return $hooks;
} );

Now we have a nice, functioning admin search that is not hidden:

Relevanssi admin search in the top menu

Leave a Reply

Are you a Relevanssi Premium customer looking for support? Please use the Premium support form.

Your email address will not be published. Required fields are marked *