{"id":2060,"date":"2023-09-18T11:06:33","date_gmt":"2023-09-18T15:06:33","guid":{"rendered":"https:\/\/csimmons.dev\/blog\/?p=2060"},"modified":"2025-01-21T11:28:47","modified_gmt":"2025-01-21T16:28:47","slug":"acf-bug-cf-4219348-cfdirectory-filter-the-importance-of-filter-order","status":"publish","type":"post","link":"https:\/\/csimmons.dev\/blog\/2023\/09\/acf-bug-cf-4219348-cfdirectory-filter-the-importance-of-filter-order\/","title":{"rendered":"ACF Bug CF-4219348 (cfdirectory Filter: The importance of filter order)"},"content":{"rendered":"<h2><span style=\"color: #ff0000;\">UPDATE<\/span><\/h2>\n<p>This bug has been <strong>FIXED<\/strong> by Adobe in Build No: <strong>2023.0.0.330651<\/strong>!<\/p>\n<hr \/>\n<p>Filed as ACF bug <a href=\"https:\/\/tracker.adobe.com\/#\/view\/CF-4219348\">CF-4219348<\/a>.<\/p>\n<p>This is not a bug in Lucee and functions as expected.<\/p>\n<p>This demo illustrates the importance of filter order for cfdirectory in ACF.<\/p>\n<p>A directory contains the following files:<\/p>\n<ul>\n<li>this-is-a-doc.doc<\/li>\n<li>this-is-a-docm.docm<\/li>\n<li>this-is-a-docx.docx<\/li>\n<li>this-is-a-xls.xls<\/li>\n<li>this-is-a-xlsm.xlsm<\/li>\n<li>this-is-a-xlsx.xlsx<\/li>\n<\/ul>\n<p>The filter attribute of cfdirectory accepts a pipe delimited list. When a 3 digit file extension precedes a 4 digit file extension in the filter attribute of cfdirectory (and the extensions share the same first 3 characters) only files with the 3 digit extension are included. You could use an astericks (<em>) on the front and the back of the extension (<\/em>.doc*) to retrieve both .doc and .docx, but this could also include additional files you don&#8217;t want to retrieve such as .docm files. The same is true for .xls, .xlsx, and .xlsm files.<\/p>\n<p><strong>Option 1:<\/strong> Filter (<em>.doc|<\/em>.docx|<em>.xls|<\/em>.xlsx): Returns 2 files: this-is-a-doc.doc, this-is-a-xls.xls<\/p>\n<p><a href=\"https:\/\/csimmons.dev\/blog\/2023\/09\/acf-bug-cf-4219348-cfdirectory-filter-the-importance-of-filter-order\/directory-filter-acf-option-1\/#main\"><img width=\"1024\" height=\"266\" data-public-id=\"directory-filter-ACF-option-1\/directory-filter-ACF-option-1.png\" loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-post-2060 wp-image-2054 size-large\" src=\"https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_1024,h_266,c_scale\/f_auto,q_auto\/v1695048211\/directory-filter-ACF-option-1\/directory-filter-ACF-option-1.png?_i=AA\" alt=\"directory-filter-ACF-option-1\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1695048211\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_1024,h_266,c_scale\/f_auto,q_auto\/v1695048211\/directory-filter-ACF-option-1\/directory-filter-ACF-option-1.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_300,h_78,c_scale\/f_auto,q_auto\/v1695048211\/directory-filter-ACF-option-1\/directory-filter-ACF-option-1.png?_i=AA 300w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_768,h_199,c_scale\/f_auto,q_auto\/v1695048211\/directory-filter-ACF-option-1\/directory-filter-ACF-option-1.png?_i=AA 768w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/f_auto,q_auto\/v1695048211\/directory-filter-ACF-option-1\/directory-filter-ACF-option-1.png?_i=AA 1518w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p><strong>Option 2:<\/strong> Filter (<em>.docx|<\/em>.doc|<em>.xlsx|<\/em>.xls): Returns 4 files: this-is-a-doc.doc, this-is-a-docx.docx, this-is-a-xls.xls, this-is-a-xlsx.xlsx<\/p>\n<p><a href=\"https:\/\/csimmons.dev\/blog\/2023\/09\/acf-bug-cf-4219348-cfdirectory-filter-the-importance-of-filter-order\/directory-filter-acf-option-2\/#main\"><img width=\"1024\" height=\"306\" data-public-id=\"directory-filter-ACF-option-2\/directory-filter-ACF-option-2.png\" loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-post-2060 wp-image-2055 size-large\" src=\"https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_1024,h_306,c_scale\/f_auto,q_auto\/v1695048216\/directory-filter-ACF-option-2\/directory-filter-ACF-option-2.png?_i=AA\" alt=\"directory-filter-ACF-option-2\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1695048216\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_1024,h_306,c_scale\/f_auto,q_auto\/v1695048216\/directory-filter-ACF-option-2\/directory-filter-ACF-option-2.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_300,h_90,c_scale\/f_auto,q_auto\/v1695048216\/directory-filter-ACF-option-2\/directory-filter-ACF-option-2.png?_i=AA 300w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_768,h_229,c_scale\/f_auto,q_auto\/v1695048216\/directory-filter-ACF-option-2\/directory-filter-ACF-option-2.png?_i=AA 768w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/f_auto,q_auto\/v1695048216\/directory-filter-ACF-option-2\/directory-filter-ACF-option-2.png?_i=AA 1528w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p><strong>Option 3:<\/strong> Filter(<em>.doc<\/em>|<em>.xls<\/em>): Returns 6 files: this-is-a-doc.doc, this-is-a-docm.docm, this-is-a-docx.docx, this-is-a-xls.xls, this-is-a-xlsm.xlsm, this-is-a-xlsx.xlsx<\/p>\n<p><a href=\"https:\/\/csimmons.dev\/blog\/2023\/09\/acf-bug-cf-4219348-cfdirectory-filter-the-importance-of-filter-order\/directory-filter-acf-option-3\/#main\"><img width=\"1024\" height=\"355\" data-public-id=\"directory-filter-ACF-option-3\/directory-filter-ACF-option-3.png\" loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-post-2060 wp-image-2056 size-large\" src=\"https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_1024,h_355,c_scale\/f_auto,q_auto\/v1695048223\/directory-filter-ACF-option-3\/directory-filter-ACF-option-3.png?_i=AA\" alt=\"directory-filter-ACF-option-3\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1695048223\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_1024,h_355,c_scale\/f_auto,q_auto\/v1695048223\/directory-filter-ACF-option-3\/directory-filter-ACF-option-3.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_300,h_104,c_scale\/f_auto,q_auto\/v1695048223\/directory-filter-ACF-option-3\/directory-filter-ACF-option-3.png?_i=AA 300w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_768,h_266,c_scale\/f_auto,q_auto\/v1695048223\/directory-filter-ACF-option-3\/directory-filter-ACF-option-3.png?_i=AA 768w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/f_auto,q_auto\/v1695048223\/directory-filter-ACF-option-3\/directory-filter-ACF-option-3.png?_i=AA 1522w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<h2>Code to Reproduce:<\/h2>\n<p><script src=\"https:\/\/gist.github.com\/ccsimmons\/0ea9a61ab60ca295c67925572556babd.js\"><\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>UPDATE This bug has been FIXED by Adobe in Build No: 2023.0.0.330651! Filed as ACF bug CF-4219348. This is not a bug in Lucee and functions as expected. This demo illustrates the importance of filter order for cfdirectory in ACF. A directory contains the following files: this-is-a-doc.doc this-is-a-docm.docm this-is-a-docx.docx this-is-a-xls.xls this-is-a-xlsm.xlsm this-is-a-xlsx.xlsx The filter attribute &#8230; <a title=\"ACF Bug CF-4219348 (cfdirectory Filter: The importance of filter order)\" class=\"read-more\" href=\"https:\/\/csimmons.dev\/blog\/2023\/09\/acf-bug-cf-4219348-cfdirectory-filter-the-importance-of-filter-order\/\" aria-label=\"Read more about ACF Bug CF-4219348 (cfdirectory Filter: The importance of filter order)\">Read more<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"_cloudinary_featured_overwrite":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[68],"tags":[48,12],"class_list":["post-2060","post","type-post","status-publish","format-standard","hentry","category-developer","tag-coldfusion","tag-developer"],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pbVg43-xe","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/csimmons.dev\/blog\/wp-json\/wp\/v2\/posts\/2060","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/csimmons.dev\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/csimmons.dev\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/csimmons.dev\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/csimmons.dev\/blog\/wp-json\/wp\/v2\/comments?post=2060"}],"version-history":[{"count":0,"href":"https:\/\/csimmons.dev\/blog\/wp-json\/wp\/v2\/posts\/2060\/revisions"}],"wp:attachment":[{"href":"https:\/\/csimmons.dev\/blog\/wp-json\/wp\/v2\/media?parent=2060"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/csimmons.dev\/blog\/wp-json\/wp\/v2\/categories?post=2060"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/csimmons.dev\/blog\/wp-json\/wp\/v2\/tags?post=2060"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}