Skip to content

Renamed from WP Loupe

Loupe Search is the successor to the WP Loupe plugin. Existing installs upgrade seamlessly — nothing breaks on update. The old names below still work but are deprecated and will be removed in a future major release.

On upgrade: no. Every old name is still wired up, and the existing index is reused, so sites and integrations keep working untouched.

Before the next major release: yes. Update any code that uses the old names. The quickest way to find it:

  • Set WP_DEBUG to true and exercise your integration. Deprecated filters raise standard WordPress deprecation notices naming their replacement, and wp wp-loupe prints a CLI warning.

  • Grep your own code for the legacy names:

    Terminal window
    grep -rn "wp_loupe_\|wp-loupe/v1\|wp wp-loupe\|wp-loupe-db" .
AreaLegacy (deprecated)CurrentDeprecated since
Index folderwp-content/wp-loupe-dbwp-content/loupe-search-db1.1.0
Developer filterswp_loupe_*loupe_search_*1.1.0
REST namespacewp-loupe/v1loupe-search/v11.1.0
WP-CLI commandwp wp-loupewp loupe-search1.1.0
Abilitieswp-loupe/search, wp-loupe/get-postloupe-search/search, loupe-search/get-post1.2.0
Ability categorywp-loupeloupe-search1.2.0
Optionswp_loupe_custom_post_types, wp_loupe_fields, wp_loupe_advancedloupe_search_custom_post_types, loupe_search_fields, loupe_search_advanced1.2.4 (removed)
ConstantsWP_LOUPE_FILE, WP_LOUPE_NAME, WP_LOUPE_PATH, WP_LOUPE_URLLOUPE_SEARCH_FILE, LOUPE_SEARCH_NAME, LOUPE_SEARCH_PATH, LOUPE_SEARCH_URL1.2.4 (removed)
Settings page slugwp-loupeloupe-search1.2.4 (removed)

New installs create wp-content/loupe-search-db.

On upgrade, the legacy wp-content/wp-loupe-db folder keeps being used only while the new folder does not exist — so no reindex is required. If both folders exist, loupe-search-db wins. To move over deliberately, delete or rename the legacy folder and run wp loupe-search reindex.

The path is filterable via loupe_search_db_path (legacy: wp_loupe_db_path).

Filters use the loupe_search_* prefix (e.g. loupe_search_db_path, loupe_search_schema_post). The old wp_loupe_* names still fire via apply_filters_deprecated(). Update your add_filter() calls to the new names.

The REST namespace is loupe-search/v1 (e.g. /wp-json/loupe-search/v1/search). The old wp-loupe/v1 namespace is still registered as a deprecated alias.

The command is wp loupe-search (e.g. wp loupe-search reindex). The old wp wp-loupe command still works as a deprecated alias.

Abilities are registered as loupe-search/search and loupe-search/get-post under the loupe-search category. The legacy wp-loupe/search and wp-loupe/get-post abilities (category wp-loupe) remain registered as deprecated aliases sharing the same callbacks.

wp_ is reserved for WordPress core, so in 1.2.4 the stored options moved to the loupe_search_ prefix, along with the nested wp_loupe_post_type_field key (now loupe_search_post_type_field) and the WP_LOUPE_* constants. Unlike the renames above these are not aliased — the old names are gone.

Stored settings are migrated automatically the first time the plugin loads after the update, and the legacy rows are deleted. Search result caches are keyed by a hash of the query so they cannot be renamed; they are dropped and rebuilt on the next search.

The settings screen moved from options-general.php?page=wp-loupe to options-general.php?page=loupe-search. Update any bookmarks or links.

See the Changelog for the full history.

Some identifiers deliberately keep the wp_loupe_ prefix. These are not oversights, and there is nothing to migrate:

IdentifierWhy it stayed
REST error codes, e.g. wp_loupe_missing_query, wp_loupe_unallowlisted_fieldA REST error code is a single string; changing it would break clients that branch on it
PHP namespace Soderlind\Plugin\WPLoupe and WP_Loupe_* class namesInternal API, not part of the public contract
Admin CSS classes and DOM ids, e.g. wp-loupe-cardPresentation only, scoped to the plugin’s own settings screen