{"id":378836,"date":"2026-10-03T16:10:49","date_gmt":"2026-10-03T16:10:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/csv-to-search\/"},"modified":"2026-10-03T16:10:37","modified_gmt":"2026-10-03T16:10:37","slug":"ccms-csv-search","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/ccms-csv-search\/","author":17117220,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.2","requires":"5.6","requires_php":"7.2","requires_plugins":null,"header_name":"CCMS CSV Search","header_author":"Complete Content Management Services","header_description":"Upload a CSV file and let visitors search, filter, and browse the data through a customizable shortcode with tabs, pagination, and table or list display.","assets_banners_color":"bbc5cf","last_updated":"2026-10-03 16:10:37","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.ccmssolutions.com\/","header_plugin_uri":"https:\/\/www.ccmssolutions.com\/plugins\/ccms-csv-search\/","header_author_uri":"https:\/\/www.ccmssolutions.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":52,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"ccmshightech","date":"2026-10-03 16:10:37","revision":3726486}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3726486,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3726486,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3726486,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3726486,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3726486,"resolution":"1","location":"assets","locale":"","width":1672,"height":1438},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3726486,"resolution":"2","location":"assets","locale":"","width":1672,"height":1190},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3726486,"resolution":"3","location":"assets","locale":"","width":1672,"height":886},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3726486,"resolution":"4","location":"assets","locale":"","width":1672,"height":1196},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3726486,"resolution":"5","location":"assets","locale":"","width":1672,"height":1580},"screenshot-6.jpg":{"filename":"screenshot-6.jpg","revision":3726486,"resolution":"6","location":"assets","locale":"","width":1512,"height":799},"screenshot-7.jpg":{"filename":"screenshot-7.jpg","revision":3726486,"resolution":"7","location":"assets","locale":"","width":1512,"height":799},"screenshot-8.jpg":{"filename":"screenshot-8.jpg","revision":3726486,"resolution":"8","location":"assets","locale":"","width":1567,"height":784}},"screenshots":{"1":"Getting Started tab \u2014 quick-start instructions, shortcode copy button, and CSV template download.","2":"General settings \u2014 upload a CSV file, set button colors and height, configure category filter.","3":"Display settings \u2014 choose between table and list view, set heading text color.","4":"Pagination settings \u2014 enable\/disable pagination, set results per page, customize all pagination colors.","5":"Tab settings \u2014 configure up to 2 filter tabs with custom titles, type filters, and colors.","6":"Frontend search page \u2014 clean layout with tab buttons and search bar before a query.","7":"Search results in table view \u2014 all 10 results displayed with column headers and data rows.","8":"Filtered search results \u2014 Retail tab active, showing only matching rows."}},"plugin_section":[],"plugin_tags":[567,3524,87,944,2289],"plugin_category":[59],"plugin_contributors":[282389],"plugin_business_model":[],"class_list":["post-378836","plugin","type-plugin","status-publish","hentry","plugin_tags-csv","plugin_tags-data","plugin_tags-import","plugin_tags-search","plugin_tags-table","plugin_category-utilities-and-tools","plugin_contributors-ccmshightech","plugin_committers-ccmshightech"],"banners":{"banner":"https:\/\/ps.w.org\/ccms-csv-search\/assets\/banner-772x250.png?rev=3726486","banner_2x":"https:\/\/ps.w.org\/ccms-csv-search\/assets\/banner-1544x500.png?rev=3726486","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/ccms-csv-search\/assets\/icon-128x128.png?rev=3726486","icon_2x":"https:\/\/ps.w.org\/ccms-csv-search\/assets\/icon-256x256.png?rev=3726486","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ccms-csv-search\/assets\/screenshot-1.png?rev=3726486","caption":"Getting Started tab \u2014 quick-start instructions, shortcode copy button, and CSV template download."},{"src":"https:\/\/ps.w.org\/ccms-csv-search\/assets\/screenshot-2.png?rev=3726486","caption":"General settings \u2014 upload a CSV file, set button colors and height, configure category filter."},{"src":"https:\/\/ps.w.org\/ccms-csv-search\/assets\/screenshot-3.png?rev=3726486","caption":"Display settings \u2014 choose between table and list view, set heading text color."},{"src":"https:\/\/ps.w.org\/ccms-csv-search\/assets\/screenshot-4.png?rev=3726486","caption":"Pagination settings \u2014 enable\/disable pagination, set results per page, customize all pagination colors."},{"src":"https:\/\/ps.w.org\/ccms-csv-search\/assets\/screenshot-5.png?rev=3726486","caption":"Tab settings \u2014 configure up to 2 filter tabs with custom titles, type filters, and colors."},{"src":"https:\/\/ps.w.org\/ccms-csv-search\/assets\/screenshot-6.jpg?rev=3726486","caption":"Frontend search page \u2014 clean layout with tab buttons and search bar before a query."},{"src":"https:\/\/ps.w.org\/ccms-csv-search\/assets\/screenshot-7.jpg?rev=3726486","caption":"Search results in table view \u2014 all 10 results displayed with column headers and data rows."},{"src":"https:\/\/ps.w.org\/ccms-csv-search\/assets\/screenshot-8.jpg?rev=3726486","caption":"Filtered search results \u2014 Retail tab active, showing only matching rows."}],"raw_content":"<!--section=description-->\n<p><strong>CCMS CSV Search<\/strong> lets you upload a CSV file and display its data as a searchable, filterable table or list on any page or post using a simple shortcode. Developed by <strong>Complete Content Management Services\u2122<\/strong> (<a href=\"https:\/\/www.ccmssolutions.com\/\">ccmssolutions.com<\/a>).<\/p>\n\n<h4>How it works<\/h4>\n\n<ol>\n<li>Upload a CSV file (or download the provided template).<\/li>\n<li>Configure your display preferences \u2014 table or list view, colors, pagination, and tabs.<\/li>\n<li>Drop the <code>[csvs_search]<\/code> shortcode onto any page or post.<\/li>\n<li>Visitors search by any column \u2014 company name, address, city, state, zip code, phone, and more.<\/li>\n<\/ol>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>CSV upload<\/strong> \u2014 upload a .csv or .txt file from the admin settings. The first row is treated as column headers.<\/li>\n<li><strong>Full-text search<\/strong> \u2014 visitors can search across all columns simultaneously.<\/li>\n<li><strong>Table or list display<\/strong> \u2014 choose how results appear; both are responsive and mobile-friendly.<\/li>\n<li><strong>Customizable tabs<\/strong> \u2014 create up to 2 tabs that filter results by a \"Type\" column.<\/li>\n<li><strong>Pagination<\/strong> \u2014 configurable results per page with fully customizable colors.<\/li>\n<li><strong>Color customization<\/strong> \u2014 button colors, tab colors, text colors, and pagination colors are all adjustable.<\/li>\n<li><strong>CSV template download<\/strong> \u2014 a ready-made template helps users structure their data correctly.<\/li>\n<li><strong>Shortcode<\/strong> \u2014 one shortcode, any page: <code>[csvs_search]<\/code>.<\/li>\n<li><strong>Clean uninstall<\/strong> \u2014 all plugin data is removed when the plugin is deleted.<\/li>\n<li><strong>Translation ready<\/strong> \u2014 fully internationalized with a .pot file included.<\/li>\n<\/ul>\n\n<h4>Free version limits<\/h4>\n\n<ul>\n<li>One CSV file.<\/li>\n<li>The first 250 rows of the file are searched.<\/li>\n<li>Up to 2 filter tabs.<\/li>\n<\/ul>\n\n<h4>CCMS CSV Search Pro<\/h4>\n\n<p><a href=\"https:\/\/www.ccmssolutions.com\/plugins\/ccms-csv-search-pro\/\">CCMS CSV Search Pro<\/a> is a separate paid add-on plugin from CCMS. It needs this plugin and adds:<\/p>\n\n<ul>\n<li>Unlimited rows.<\/li>\n<li>Up to 8 filter tabs.<\/li>\n<li>Multiple CSV files, each shown with <code>[csvs_search source=\"name\"]<\/code>.<\/li>\n<li>CSV import from a URL, with hourly or daily refresh.<\/li>\n<li>Export of search results to CSV.<\/li>\n<\/ul>\n\n<p>This plugin works fully on its own. Nothing is unlocked by a key, and it never contacts a licensing server.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin is fully functional without contacting any external service. It connects to one external service, and only when you explicitly choose to use it:<\/p>\n\n<p><strong>CCMS newsletter opt-in (optional).<\/strong> The plugin includes an optional newsletter sign-up on the <strong>CCMS CSV Search \u2192 About CCMS<\/strong> screen. Nothing is sent unless a logged-in administrator types an email address, ticks the consent checkbox, and clicks <strong>Subscribe<\/strong>. When (and only when) that happens, the plugin sends the following to CCMS to record the subscription:<\/p>\n\n<ul>\n<li>the email address you entered;<\/li>\n<li>a consent flag indicating you agreed to receive email;<\/li>\n<li>a fixed source label (<code>ccms-csv-search<\/code>); and<\/li>\n<li>your site's address (the result of <code>home_url()<\/code>), so CCMS can associate the request with your site.<\/li>\n<\/ul>\n\n<p>The data is sent to Complete Content Management Services (CCMS) at <code>https:\/\/www.ccmssolutions.com\/api\/newsletter-subscribe.php<\/code>. No data is sent at any other time, and no search, visitor, or site data is ever transmitted.<\/p>\n\n<p>Service provider: Complete Content Management Services \u2014 https:\/\/www.ccmssolutions.com\/\nTerms of service: https:\/\/www.ccmssolutions.com\/terms\/\nPrivacy policy: https:\/\/www.ccmssolutions.com\/privacy-policy\/<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin ZIP via <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>, or copy the <code>ccms-csv-search<\/code> folder to <code>wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate <strong>CCMS CSV Search<\/strong>.<\/li>\n<li>Go to <strong>CCMS CSV Search<\/strong> in the admin menu and upload your CSV file.<\/li>\n<li>Configure display, pagination, and tab settings.<\/li>\n<li>Add <code>[csvs_search]<\/code> to any page or post.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20format%20should%20my%20csv%20file%20be%20in%3F\"><h3>What format should my CSV file be in?<\/h3><\/dt>\n<dd><p>The first row must contain column headers. Use commas as delimiters. You can download a template from the Getting Started tab in the plugin settings.<\/p><\/dd>\n<dt id=\"can%20i%20filter%20results%20into%20different%20tabs%3F\"><h3>Can I filter results into different tabs?<\/h3><\/dt>\n<dd><p>Yes. Add a \"Type\" column to your CSV, then create tabs in the plugin settings and assign each tab a type value. Rows are filtered to the matching tab.<\/p><\/dd>\n<dt id=\"what%20columns%20can%20visitors%20search%3F\"><h3>What columns can visitors search?<\/h3><\/dt>\n<dd><p>Visitors can search across all columns simultaneously. The search is case-insensitive and matches partial text.<\/p><\/dd>\n<dt id=\"is%20there%20a%20limit%20on%20how%20many%20rows%20i%20can%20upload%3F\"><h3>Is there a limit on how many rows I can upload?<\/h3><\/dt>\n<dd><p>The free version searches the first 250 rows of your file. The separate CCMS CSV Search Pro add-on removes the limit.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20create%20database%20tables%3F\"><h3>Does this plugin create database tables?<\/h3><\/dt>\n<dd><p>No. The CSV file is stored in a private folder and read on each search. No custom database tables are created.<\/p><\/dd>\n<dt id=\"where%20is%20my%20csv%20file%20stored%2C%20and%20can%20visitors%20download%20it%3F\"><h3>Where is my CSV file stored, and can visitors download it?<\/h3><\/dt>\n<dd><p>Uploaded files are kept in <code>wp-content\/uploads\/csvs-data\/<\/code>, not in the media library. Each file gets a random 32-character name, nothing on your site links to it, and the folder is set to deny direct access on Apache and IIS. Visitors can see the rows a search returns, but they cannot download the raw file.<\/p>\n\n<p>If your server runs NGINX, add this rule to your server configuration to block the folder outright:<\/p>\n\n<pre><code>location ^~ \/wp-content\/uploads\/csvs-data\/ { deny all; }\n<\/code><\/pre>\n\n<p>Adjust the path if your uploads folder is elsewhere.<\/p><\/dd>\n<dt id=\"will%20the%20plugin%20tell%20me%20if%20the%20folder%20is%20exposed%3F\"><h3>Will the plugin tell me if the folder is exposed?<\/h3><\/dt>\n<dd><p>Yes. On its own screens the plugin puts a small marker file in the folder and requests it from your own site's uploads address. If the marker can be downloaded, a warning appears with the exact rule for your site, and a Check again button. This is a request from your server to itself, cached for 12 hours, and nothing is sent to any other site. If your server cannot reach its own address, the plugin stays quiet rather than guessing.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20down%20my%20site%3F\"><h3>Will it slow down my site?<\/h3><\/dt>\n<dd><p>The CSV is only parsed when a visitor performs a search (via AJAX), so it does not affect page load time. Very large files take longer to search because the file is read on each search.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Upload a CSV file and let visitors search, filter, and browse the data through a customizable shortcode.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/378836","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=378836"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ccmshightech"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=378836"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=378836"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=378836"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=378836"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=378836"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=378836"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}