=== Media Search Enhanced === Contributors: 1fixdotio, yoren Donate link: https://1fix.io/ Tags: media library, media, attachment Requires at least: 3.5 Tested up to: 6.8.3 Stable tag: 1.0.0 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Search through all fields in Media Library. == Description == **Try it live in your browser** — [launch the WordPress Playground demo](https://playground.wordpress.net/?blueprint-url=https://raw.githubusercontent.com/1fixdotio/media-search-enhanced/master/blueprint/playground.blueprint.json). Boots a WordPress instance with this plugin active and a Media Library seeded with 8 attachments, so you can see the cross-field search in action immediately. Searching `mountain` returns 6 hits (matches in filename and alt text included) — core WordPress search would only find 3. This plugin is made for: * Search through all fields in Media Library, including: ID, title, caption, alternative text and description. * Search Taxonomies for Media, include the name, slug and description fields. * Search media file name. * **Multi-term search** — Anywhere in the WordPress admin (the Media Library list view at `upload.php`, the "Add Media" modal, and other admin screens), use commas to search for multiple items at once (e.g. `image-a.jpg, photo-2.jpg`). Matches attachments containing **any** of the terms. Limited to 10 terms per search. Frontend searches still treat commas as literal characters, as a query-amplification guard for public pages. * Use shortcode `[mse-search-form]` to insert a media search form in posts and template files. It will search for media by all fields mentioned above. == Installation == = Using The WordPress Dashboard = 1. Navigate to the 'Add New' in the plugins dashboard 2. Search for 'media-search-enhanced' 3. Click 'Install Now' 4. Activate the plugin on the Plugin dashboard = Uploading in WordPress Dashboard = 1. Navigate to the 'Add New' in the plugins dashboard 2. Navigate to the 'Upload' area 3. Select `media-search-enhanced.zip` from your computer 4. Click 'Install Now' 5. Activate the plugin in the Plugin dashboard = Using FTP = 1. Download `media-search-enhanced.zip` 2. Extract the `media-search-enhanced` directory to your computer 3. Upload the `media-search-enhanced` directory to the `/wp-content/plugins/` directory 4. Activate the plugin in the Plugin dashboard == Frequently Asked Questions == = How to link media to the file itself rather than the attachment page in media search results page? = Please add the following code to the `functions.php` in your theme: function my_get_attachment_url( $url, $post_id ) { $url = wp_get_attachment_url( $post_id ); return $url; } add_filter( 'mse_get_attachment_url', 'my_get_attachment_url', 10, 2 ); == Screenshots == 1. Demo search on the Media Library screen. 2. Demo search on the Insert Media - Media Library screen. == Changelog == = 1.0.0 = * New: Multi-term search — use commas to search for multiple items at once anywhere in wp-admin, including the Media Library list view and the "Add Media" modal (e.g. `sunset.jpg, logo.png`). Limited to 10 terms. Frontend searches still treat commas as literal characters. * Performance: Replaced LEFT JOINs + DISTINCT with EXISTS subqueries, eliminating temporary tables and improving search speed up to 10x on large media libraries. * Performance: Numeric searches (e.g. searching by attachment ID) now use exact integer matching instead of string comparison, enabling primary key index usage. * Compatibility: The plugin no longer overwrites the entire WHERE clause. Conditions from WordPress core and other plugins are now preserved. * Security: Fixed reflected XSS in the search form placeholder. * Security: Private attachments are now only visible to users with appropriate permissions (editors/admins see all; authors see only their own). * Developer: Added `mse_max_search_terms` filter to customize the multi-term cap (default 10). Added `mse_allow_multi_term_search` filter to customize where multi-term search is allowed; defaults to `is_admin()`. = 0.9.2 = * Security enhancements. = 0.9.1 = * Fix: Prevent "Not unique table/alias: wp_postmeta" SQL error by aliasing the postmeta JOIN. Props [@mikemeinz](https://wordpress.org/support/users/mikemeinz/). See https://wordpress.org/support/topic/sql-syntax-error-26/ = 0.9.0 = * Added the languages pt_BR and es_ES. Thanks to [@larodiel](https://github.com/1fixdotio/media-search-enhanced/pull/4). * Fixed an issue when searching for images in the Image block, the plugin caused the HTTP 500 error. Also thanks to [@larodiel](https://github.com/1fixdotio/media-search-enhanced/pull/4). = 0.8.1 = * Fix PHP notices and updated the "Tested up to" field. = 0.8.0 = * Supporting MIME type and date filters when searching in the Media Library. Thanks to [@jedifunk](https://wordpress.org/support/topic/results-filters) for spotting this bug. = 0.7.3 = * Fix PHP warnings. Thanks to [@DavidOn3](https://wordpress.org/support/topic/warning-message-in-search-result-page). = 0.7.2 = * Bug fix: Make the search work with WPML Media - All languages. * Filter the search form if it's on the media search results page. * Make the images clickable in the search results. Can be disabled by setting the filter `mse_is_image_clickable` to `false`. = 0.7.1 = * Bug fix: Remove duplicate search results when WPML plugin is activated, THE RIGHT WAY. = 0.7.0 = * Remove duplicate search results when WPML plugin is activated. Props [@joseluiscruz](https://wordpress.org/support/topic/minor-conflict-with-wpml-media-plugin). = 0.6.1 = * Security update: use `$wpdb->prepare` to process SQL statements. Thanks to [@daxelrod](https://profiles.wordpress.org/daxelrod/) for this. = 0.6.0 = * Add ID to search fields. * Modify the clauses with `posts_clauses` filter. = 0.5.4 = * Add filter `mse_get_attachment_url` to modify the attachment URLs in the media search results. = 0.5.3 = * Bug fix: Filtered excerpt should be returned, not echoed. = 0.5.2 = * Display thumbnails in the media search results. = 0.5 = * Use shortcode `[mse-search-form]` to insert a media search form in posts, which only searches for media files (through all fields). = 0.4 = * Search media file name. = 0.3 = * If there are Taxonomies for Media, search the name, slug and description fields. = 0.2.1 = * Add DISTINCT statement to SQL when query media in the "Insert Media" screen = 0.2.0 = * The first version