{"id":81142,"date":"2018-02-03T16:41:50","date_gmt":"2018-02-03T16:41:50","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/bea-sanitize-filename\/"},"modified":"2026-04-07T08:04:16","modified_gmt":"2026-04-07T08:04:16","slug":"bea-sanitize-filename","status":"publish","type":"plugin","link":"https:\/\/os.wordpress.org\/plugins\/bea-sanitize-filename\/","author":14486844,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.0.10","stable_tag":"2.0.10","tested":"7.0","requires":"4.0","requires_php":"8.0","requires_plugins":null,"header_name":"BEA - Sanitize Filename","header_author":"Be API","header_description":"Remove all punctuation and accents from the filename of uploaded files.","assets_banners_color":"fefefe","last_updated":"2026-04-07 08:04:16","external_support_url":"","external_repository_url":"","donate_link":"http:\/\/paypal.me\/BeAPI","header_plugin_uri":"https:\/\/github.com\/BeAPI\/bea-sanitize-filename","header_author_uri":"https:\/\/beapi.fr","rating":5,"author_block_rating":0,"active_installs":1000,"downloads":17526,"num_ratings":4,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"MaximeCulea","date":"2018-02-03 16:41:38"},"1.0.2":{"tag":"1.0.2","author":"MaximeCulea","date":"2018-02-03 16:42:14"},"1.0.3":{"tag":"1.0.3","author":"MaximeCulea","date":"2018-02-03 16:42:52"},"1.0.4":{"tag":"1.0.4","author":"MaximeCulea","date":"2018-02-03 16:43:39"},"1.0.5":{"tag":"1.0.5","author":"MaximeCulea","date":"2018-02-03 16:44:21"},"1.0.6":{"tag":"1.0.6","author":"MaximeCulea","date":"2018-02-03 16:45:07"},"1.0.7":{"tag":"1.0.7","author":"MaximeCulea","date":"2018-02-03 16:59:20"},"1.0.8":{"tag":"1.0.8","author":"MaximeCulea","date":"2018-02-03 16:59:42"},"2.0.0":{"tag":"2.0.0","author":"MaximeCulea","date":"2018-02-03 23:41:21"},"2.0.1":{"tag":"2.0.1","author":"MaximeCulea","date":"2018-02-03 23:41:33"},"2.0.10":{"tag":"2.0.10","author":"beapi","date":"2026-04-07 08:04:16"},"2.0.2":{"tag":"2.0.2","author":"MaximeCulea","date":"2018-02-03 23:47:33"},"2.0.3":{"tag":"2.0.3","author":"MaximeCulea","date":"2018-02-11 23:03:48"},"2.0.4":{"tag":"2.0.4","author":"MaximeCulea","date":"2018-02-12 22:41:34"},"2.0.5":{"tag":"2.0.5","author":"MaximeCulea","date":"2018-02-12 22:45:49"},"2.0.6":{"tag":"2.0.6","author":"momo360modena","date":"2019-05-04 18:20:44"},"2.0.7":{"tag":"2.0.7","author":"beapi","date":"2022-09-27 14:45:45"},"2.0.9":{"tag":"2.0.9","author":"beapi","date":"2026-04-02 11:44:17"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":"4"},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":1814820,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":1814820,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":1814820,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":1814820,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.0.8","2.0.0","2.0.1","2.0.10","2.0.2","2.0.3","2.0.4","2.0.5","2.0.6","2.0.7","2.0.9"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[84,14372,85],"plugin_category":[50],"plugin_contributors":[77914,152685,77912],"plugin_business_model":[],"class_list":["post-81142","plugin","type-plugin","status-publish","hentry","plugin_tags-media","plugin_tags-sanitize","plugin_tags-uploads","plugin_category-media","plugin_contributors-beapi","plugin_contributors-maximeculea","plugin_contributors-momo360modena","plugin_committers-beapi","plugin_committers-momo360modena","plugin_support_reps-momo360modena"],"banners":{"banner":"https:\/\/ps.w.org\/bea-sanitize-filename\/assets\/banner-772x250.png?rev=1814820","banner_2x":"https:\/\/ps.w.org\/bea-sanitize-filename\/assets\/banner-1544x500.png?rev=1814820","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/bea-sanitize-filename\/assets\/icon-128x128.png?rev=1814820","icon_2x":"https:\/\/ps.w.org\/bea-sanitize-filename\/assets\/icon-256x256.png?rev=1814820","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>This plugin allows you to sanitize files on upload, which is pretty handy. It means all punctuation and accents from the filename of uploaded files will be removed.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>All accented letters will be converted to same letters without accent<\/li>\n<li>Special characters will be deleted<\/li>\n<li>Underscores will be replaced by hyphens<\/li>\n<\/ul>\n\n<h3>Warning For Mac Owners<\/h3>\n\n<p>On MAC, you can also create an accented character with the combination of ` and the wanted letter. This has the effect to create a character with a special filename system encoding format which is not sanitized. An <a href=\"https:\/\/github.com\/BeAPI\/bea-sanitize-filename\/issues\/1\">issue<\/a> is already open about this.<\/p>\n\n<h3>Who ?<\/h3>\n\n<p>Created by <a href=\"https:\/\/beapi.fr\">Be API<\/a>, the French WordPress leader agency since 2009. Based in Paris, we are more than 30 people and always <a href=\"https:\/\/beapi.workable.com\">hiring<\/a> some fun and talented guys. So we will be pleased to work with you.<\/p>\n\n<p>This plugin is only maintained, which means we do not guarantee some free support. Consider reporting an <a href=\"https:\/\/github.com\/BeAPI\/bea-sanitize-filename\/issues\">issue<\/a> and be patient.<\/p>\n\n<p>To facilitate the process of submitting an issue and quicker answer, we only use Github, so don't use WP.Org support, it will not be considered.<\/p>\n\n<!--section=installation-->\n<h4>Requirements<\/h4>\n\n<h4>WordPress<\/h4>\n\n<ul>\n<li>Download and install using the built-in WordPress plugin installer.<\/li>\n<li>Site activate in the \"Plugins\" area of the admin.<\/li>\n<li>Nothing more, this plugin is ready to use !<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20plugin%20affect%20existing%20files%20%3F\"><h3>Will this plugin affect existing files ?<\/h3><\/dt>\n<dd><p>No.<\/p>\n\n<p>Only after plugin activation, while a file is uploaded to the library. However, inf the future a tool will be available to sanitize old files.<\/p><\/dd>\n<dt id=\"can%20i%20use%20into%20a%20multisite%20%3F\"><h3>Can I use into a multisite ?<\/h3><\/dt>\n<dd><p>Yes.<\/p>\n\n<p>You just need to activate on each site.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.10 - 07 Apr 2026<\/h4>\n\n<ul>\n<li>Improve <code>sanitize_file_name<\/code> handling so only the real file suffix is transformed (avoid stripping when an extension-like segment appears earlier in the name)<\/li>\n<li>Expand PHPUnit coverage with data providers and upload-style filename cases<\/li>\n<li>Tidy <code>sanitize_file_name_chars<\/code> flow and align PHPCS with PHP 8.0; refine Composer\/npm test scripts<\/li>\n<\/ul>\n\n<h4>2.0.9 - 02 Apr 2026<\/h4>\n\n<ul>\n<li>Fix invalid smart quotes in special characters list<\/li>\n<li>Migrate tests to <code>wp-env<\/code> with PHPUnit unit tests only<\/li>\n<li>Improve testing documentation and scripts<\/li>\n<\/ul>\n\n<h4>2.0.8 - 02 Apr 2026<\/h4>\n\n<ul>\n<li>Add <code>@<\/code> character to the sanitized characters list<\/li>\n<\/ul>\n\n<h4>2.0.7 - 20 Sept 2022<\/h4>\n\n<ul>\n<li>Non Latin characters in filename are handled<\/li>\n<\/ul>\n\n<h4>2.0.6 - 05 Oct 2018<\/h4>\n\n<ul>\n<li>#8 : Add More accentuated characters<\/li>\n<\/ul>\n\n<h4>2.0.5 - 12 Feb 2018<\/h4>\n\n<ul>\n<li>i18n<\/li>\n<\/ul>\n\n<h4>2.0.0 - 02 Feb 2018<\/h4>\n\n<ul>\n<li>Go to WP<\/li>\n<\/ul>\n\n<h4>1.0.4 - 19 Dec 2017<\/h4>\n\n<ul>\n<li>Branding refactor<\/li>\n<\/ul>\n\n<h4>1.0.3 - 19 Dec 2017<\/h4>\n\n<ul>\n<li>Fix some PHP notices<\/li>\n<\/ul>\n\n<h4>1.0.2 - 08 Sept 2017<\/h4>\n\n<ul>\n<li>Update <code>sanitize_file_name_chars<\/code> list<\/li>\n<\/ul>\n\n<h4>1.0.1 - 05 Aug 2017<\/h4>\n\n<ul>\n<li>Add readme<\/li>\n<li>Replace underscore by hyphen<\/li>\n<li>Only lowercase<\/li>\n<\/ul>\n\n<h4>1.0.0 - 27 Nov 2015<\/h4>\n\n<ul>\n<li>Initial<\/li>\n<\/ul>","raw_excerpt":"Remove all punctuation and accents from the filename of uploaded files.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/os.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/81142","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/os.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/os.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/os.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=81142"}],"author":[{"embeddable":true,"href":"https:\/\/os.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/beapi"}],"wp:attachment":[{"href":"https:\/\/os.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=81142"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/os.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=81142"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/os.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=81142"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/os.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=81142"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/os.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=81142"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/os.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=81142"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}