diff --git src/wp-includes/class-wp-editor.php src/wp-includes/class-wp-editor.php
index a61f239788..775042e86c 100644
--- src/wp-includes/class-wp-editor.php
+++ src/wp-includes/class-wp-editor.php
@@ -1623,12 +1623,39 @@ final class _WP_Editors {
 		// Do main query.
 		$get_posts = new WP_Query;
 		$posts = $get_posts->query( $query );
-		// Check if any posts were found.
-		if ( ! $get_posts->post_count )
-			return false;
 
 		// Build results.
 		$results = array();
+
+		// Check if any posts were found.
+		if ( ! $get_posts->post_count ) {
+			/**
+			 * Filters the link query results.
+			 *
+			 * Allows modification of the returned link query results.
+			 *
+			 * @since 3.7.0
+			 *
+			 * @see 'wp_link_query_args' filter
+			 *
+			 * @param array $results {
+			 *     An associative array of query results.
+			 *
+			 *     @type array {
+			 *         @type int    $ID        Post ID.
+			 *         @type string $title     The trimmed, escaped post title.
+			 *         @type string $permalink Post permalink.
+			 *         @type string $info      A 'Y/m/d'-formatted date for 'post' post type,
+			 *                                 the 'singular_name' post type label otherwise.
+			 *     }
+			 * }
+			 * @param array $query  An array of WP_Query arguments.
+			 */
+			$results = apply_filters( 'wp_link_query', $results, $query );
+
+			return ! empty( $results ) ? $results : false;
+		}
+
 		foreach ( $posts as $post ) {
 			if ( 'post' == $post->post_type )
 				$info = mysql2date( __( 'Y/m/d' ), $post->post_date );
@@ -1643,28 +1670,7 @@ final class _WP_Editors {
 			);
 		}
 
-		/**
-		 * Filters the link query results.
-		 *
-		 * Allows modification of the returned link query results.
-		 *
-		 * @since 3.7.0
-		 *
-		 * @see 'wp_link_query_args' filter
-		 *
-		 * @param array $results {
-		 *     An associative array of query results.
-		 *
-		 *     @type array {
-		 *         @type int    $ID        Post ID.
-		 *         @type string $title     The trimmed, escaped post title.
-		 *         @type string $permalink Post permalink.
-		 *         @type string $info      A 'Y/m/d'-formatted date for 'post' post type,
-		 *                                 the 'singular_name' post type label otherwise.
-		 *     }
-		 * }
-		 * @param array $query  An array of WP_Query arguments.
-		 */
+		/** This filter is documented in wp-includes/class-wp-editor.php */
 		return apply_filters( 'wp_link_query', $results, $query );
 	}
 
diff --git tests/phpunit/tests/editor/wpEditors.php tests/phpunit/tests/editor/wpEditors.php
new file mode 100644
index 0000000000..edaf698466
--- /dev/null
+++ tests/phpunit/tests/editor/wpEditors.php
@@ -0,0 +1,82 @@
+<?php
+
+if ( ! class_exists( '_WP_Editors', false ) ) {
+	require_once ABSPATH . WPINC . '/class-wp-editor.php';
+}
+
+/**
+ * @group editor
+ */
+class Tests_WP_Editors extends WP_UnitTestCase {
+	public function wp_link_query_callback( $results ) {
+		return array_merge( $results, array(
+			array(
+				'ID'        => 123,
+				'title'     => 'foo',
+				'permalink' => 'bar',
+				'info'      => 'baz',
+			),
+		) );
+	}
+
+	public function test_wp_link_query_returns_false_when_nothing_found() {
+		$actual = _WP_Editors::wp_link_query( array( 's' => 'foobarbaz' ) );
+
+		$this->assertFalse( $actual );
+	}
+
+	public function test_wp_link_query_returns_search_results() {
+		$post   = self::factory()->post->create_and_get( array( 'post_status' => 'publish' ) );
+		$actual = _WP_Editors::wp_link_query( array( 's' => $post->post_title ) );
+
+		$this->assertEqualSets( array(
+			array(
+				'ID'        => $post->ID,
+				'title'     => $post->post_title,
+				'permalink' => get_permalink( $post->ID ),
+				'info'      => mysql2date( __( 'Y/m/d' ), $post->post_date ),
+			),
+		), $actual );
+	}
+
+	/**
+	 * @ticket 41825
+	 */
+	public function test_wp_link_query_returns_filtered_result_when_nothing_found() {
+		add_filter( 'wp_link_query', array( $this, 'wp_link_query_callback' ) );
+		$actual = _WP_Editors::wp_link_query( array( 's' => 'foobarbaz' ) );
+		remove_filter( 'wp_link_query', array( $this, 'wp_link_query_callback' ) );
+
+		$this->assertEqualSets( array(
+			array(
+				'ID'        => 123,
+				'title'     => 'foo',
+				'permalink' => 'bar',
+				'info'      => 'baz',
+			),
+		), $actual );
+	}
+
+	public function test_wp_link_query_returns_filtered_search_results() {
+		$post = self::factory()->post->create_and_get( array( 'post_status' => 'publish' ) );
+
+		add_filter( 'wp_link_query', array( $this, 'wp_link_query_callback' ) );
+		$actual = _WP_Editors::wp_link_query( array( 's' => $post->post_title ) );
+		remove_filter( 'wp_link_query', array( $this, 'wp_link_query_callback' ) );
+
+		$this->assertEqualSets( array(
+			array(
+				'ID'        => $post->ID,
+				'title'     => $post->post_title,
+				'permalink' => get_permalink( $post->ID ),
+				'info'      => mysql2date( __( 'Y/m/d' ), $post->post_date ),
+			),
+			array(
+				'ID'        => 123,
+				'title'     => 'foo',
+				'permalink' => 'bar',
+				'info'      => 'baz',
+			),
+		), $actual );
+	}
+}
