{"id":377133,"date":"2026-09-29T04:55:47","date_gmt":"2026-09-29T04:55:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/table-extras-for-tablepress\/"},"modified":"2026-09-29T04:55:26","modified_gmt":"2026-09-29T04:55:26","slug":"rowlane-table-extras-for-tablepress","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/rowlane-table-extras-for-tablepress\/","author":23575151,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.7.0","stable_tag":"1.7.0","tested":"7.1.2","requires":"6.7","requires_php":"7.4","requires_plugins":null,"header_name":"Rowlane Table Extras for TablePress","header_author":"nihad1122","header_description":"Responsive mode, fuzzy & column search, filters, export buttons, fixed header, frozen columns, row grouping, styling and more for free TablePress tables.","assets_banners_color":"464f64","last_updated":"2026-09-29 04:55:26","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/dArk10R4\/rowlane-table-extras-for-tablepress","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":55,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","faq","changelog"],"tags":{"1.7.0":{"tag":"1.7.0","author":"nihad1122","date":"2026-09-29 04:55:26","revision":3718255}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3718284,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3718284,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3718284,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3718284,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.7.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3718284,"resolution":"1","location":"assets","locale":"","width":716,"height":1380},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3718284,"resolution":"2","location":"assets","locale":"","width":1076,"height":437},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3718284,"resolution":"3","location":"assets","locale":"","width":1076,"height":757},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3718284,"resolution":"4","location":"assets","locale":"","width":1280,"height":1080}},"screenshots":{"1":"A table collapsing responsively on a narrow screen.","2":"Column filter dropdowns above the table.","3":"Copy\/CSV\/Print export buttons.","4":"The Rowlane Table Extras settings screen with site-wide defaults and per-table overrides."}},"plugin_section":[],"plugin_tags":[10215,19195,283329,283328,2288],"plugin_category":[],"plugin_contributors":[283330],"plugin_business_model":[],"class_list":["post-377133","plugin","type-plugin","status-publish","hentry","plugin_tags-fixed-header","plugin_tags-responsive-tables","plugin_tags-table-export","plugin_tags-table-filter","plugin_tags-tablepress","plugin_contributors-nihad1122","plugin_committers-nihad1122"],"banners":{"banner":"https:\/\/ps.w.org\/rowlane-table-extras-for-tablepress\/assets\/banner-772x250.png?rev=3718284","banner_2x":"https:\/\/ps.w.org\/rowlane-table-extras-for-tablepress\/assets\/banner-1544x500.png?rev=3718284","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/rowlane-table-extras-for-tablepress\/assets\/icon-128x128.png?rev=3718284","icon_2x":"https:\/\/ps.w.org\/rowlane-table-extras-for-tablepress\/assets\/icon-256x256.png?rev=3718284","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/rowlane-table-extras-for-tablepress\/assets\/screenshot-1.png?rev=3718284","caption":"A table collapsing responsively on a narrow screen."},{"src":"https:\/\/ps.w.org\/rowlane-table-extras-for-tablepress\/assets\/screenshot-2.png?rev=3718284","caption":"Column filter dropdowns above the table."},{"src":"https:\/\/ps.w.org\/rowlane-table-extras-for-tablepress\/assets\/screenshot-3.png?rev=3718284","caption":"Copy\/CSV\/Print export buttons."},{"src":"https:\/\/ps.w.org\/rowlane-table-extras-for-tablepress\/assets\/screenshot-4.png?rev=3718284","caption":"The Rowlane Table Extras settings screen with site-wide defaults and per-table overrides."}],"raw_content":"<!--section=description-->\n<p><strong>Rowlane Table Extras for TablePress<\/strong> adds the interactive table features many site owners miss from the free TablePress plugin \u2014 without changing your tables or their shortcodes. Turn a feature on site-wide, per table, or per shortcode, and it applies to any table that has the built-in \"Use DataTables\" option enabled.<\/p>\n\n<p>Features in this version:<\/p>\n\n<ul>\n<li><strong>Responsive mode<\/strong> \u2014 on small screens, columns that don't fit collapse into an expandable row, so tables stay readable on phones.<\/li>\n<li><strong>Column filter dropdowns<\/strong> \u2014 a select box per column (all columns, or the ones you pick) that filters the table to one value.<\/li>\n<li><strong>Column search fields<\/strong> \u2014 a text input per column for live, as-you-type substring searching of that column.<\/li>\n<li><strong>Search panes<\/strong> \u2014 filter panes above the table showing each column's values with counts; click values to filter (with cascading and totals).<\/li>\n<li><strong>Search builder<\/strong> \u2014 build condition-based filters (column + condition + value) combined with AND\/OR groups.<\/li>\n<li><strong>Search highlighting<\/strong> \u2014 the current search term is highlighted in matching cells.<\/li>\n<li><strong>Column reorder<\/strong> \u2014 visitors drag columns to reorder them; the order is remembered per visitor (with a reset button).<\/li>\n<li><strong>Export buttons<\/strong> \u2014 Copy, CSV, and Print buttons above the table, in their own row so pagination and search are untouched.<\/li>\n<li><strong>Fixed header<\/strong> \u2014 the header row stays visible while you scroll the page.<\/li>\n<li><strong>Frozen columns<\/strong> \u2014 freeze one or more leading columns while scrolling sideways.<\/li>\n<li><strong>Row grouping<\/strong> \u2014 group rows by the values in a column.<\/li>\n<li><strong>Index column<\/strong> \u2014 a leading auto-numbered column that renumbers as the table is sorted, filtered, or paged.<\/li>\n<li><strong>Alphabet search<\/strong> \u2014 A\u2013Z buttons that filter a chosen column by first letter.<\/li>\n<li><strong>Auto pre-filter<\/strong> \u2014 apply an initial search term when the table loads.<\/li>\n<li><strong>Content highlighting<\/strong> \u2014 colour cells or rows based on their content (e.g. numbers over a threshold, or a matching category).<\/li>\n<li><strong>Fuzzy search<\/strong> \u2014 a typo-tolerant global search, so \"banna\" still finds \"Banana\".<\/li>\n<li><strong>Inverted filter<\/strong> \u2014 an \"Invert\" toggle that shows the rows which do NOT match the search.<\/li>\n<li><strong>Row filtering<\/strong> \u2014 show only the rows that match a rule (e.g. one category, or a value over a threshold), rendered server-side.<\/li>\n<li><strong>Row reorder<\/strong> \u2014 visitors drag rows to reorder them for their own view (does not change the saved table).<\/li>\n<li><strong>Advanced pagination<\/strong> \u2014 choose the pagination style and a custom page-length menu (including \"All\").<\/li>\n<li><strong>Table layout<\/strong> \u2014 reposition the length menu, search box, info text and pagination.<\/li>\n<li><strong>Default table style<\/strong> \u2014 set site-wide colours (header, stripe, border, hover), striping, row density and border style.<\/li>\n<\/ul>\n\n<p>This is an independent add-on. It is <strong>not affiliated with, endorsed by, or sponsored by TablePress<\/strong> or its author; the name is used only to describe compatibility. The plugin does nothing when TablePress is inactive or when a paid TablePress plan is in use.<\/p>\n\n<h4>How to use<\/h4>\n\n<ol>\n<li>In TablePress, make sure the table has the <strong>\"Use DataTables\"<\/strong> feature enabled (Edit table \u2192 Table Options).<\/li>\n<li>Enable the features you want on the <strong>Rowlane Table Extras<\/strong> settings screen \u2014 either as site-wide defaults or per table.<\/li>\n<li>Or set them per shortcode, e.g. <code>[table id=1 te_responsive=\"on\" te_buttons=\"copy,csv,print\" te_fixed_header=\"on\" te_column_filters=\"all\" te_column_search=\"1\" te_search_panes=\"all\" te_search_builder=\"on\" te_search_highlight=\"on\" te_column_reorder=\"on\" te_fixed_columns=\"1\" te_row_group=\"2\" te_index_column=\"on\" te_alphabet=\"2\" te_auto_filter=\"Fruit\" te_highlight=\"5:gt:30:green;2:eq:Bakery:blue:row\" te_fuzzy=\"on\" te_invert=\"on\" te_row_filter=\"2:eq:Bakery\" te_row_reorder=\"on\" te_paging_type=\"full_numbers\" te_length_menu=\"10,25,50,all\" te_layout=\"bottom\" \/]<\/code>. The same keys work in the TablePress block's \"Configuration parameters\" field.<\/li>\n<\/ol>\n\n<p>Content highlighting rules are <code>;<\/code>-separated as <code>column:operator:value:color[:scope]<\/code> \u2014 operator is one of eq, neq, contains, gt, lt, gte, lte; color is green, red, yellow, blue, orange, or gray; scope is cell (default) or row. Row-filtering rules use the same <code>;<\/code>-separated <code>column:operator:value<\/code> form (a row must match every rule to be shown). The default table style is a site-wide setting only, on the Table Extras settings screen.<\/p>\n\n<h4>Privacy<\/h4>\n\n<p>The plugin makes no external requests and stores no personal data. All scripts and styles are served from your own site.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20to%20change%20my%20tables%3F\"><h3>Do I need to change my tables?<\/h3><\/dt>\n<dd><p>No. Enable a feature and it applies to your existing tables and shortcodes. It only enhances tables that have TablePress's \"Use DataTables\" option turned on.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20tablepress%20block%3F\"><h3>Does it work with the TablePress block?<\/h3><\/dt>\n<dd><p>Yes. Put the same attributes (for example <code>te_responsive=on<\/code>) in the block's \"Configuration parameters\" field.<\/p><\/dd>\n<dt id=\"i%20use%20tablepress%20pro%2Fmax.%20will%20this%20conflict%3F\"><h3>I use TablePress Pro\/Max. Will this conflict?<\/h3><\/dt>\n<dd><p>No. On any paid TablePress plan the add-on automatically stands down, because those plans already provide these features.<\/p><\/dd>\n<dt id=\"which%20libraries%20are%20bundled%3F\"><h3>Which libraries are bundled?<\/h3><\/dt>\n<dd><p>The DataTables JavaScript library and its Select, SearchPanes, SearchBuilder, Responsive, Buttons, FixedHeader, FixedColumns, RowGroup, ColReorder, and RowReorder extensions, plus mark.js for search highlighting (all MIT-licensed). See <code>assets\/datatables\/LICENSES.txt<\/code>.<\/p><\/dd>\n<dt id=\"where%20is%20the%20source%20for%20the%20bundled%20javascript%3F\"><h3>Where is the source for the bundled JavaScript?<\/h3><\/dt>\n<dd><p>assets\/datatables\/te-datatables.min.js is a concatenation of the above libraries' official npm distributions plus this plugin's own un-minified helper sources in <code>assets\/js\/src\/<\/code>. The exact versions are pinned in <code>package.json<\/code> and listed in <code>assets\/datatables\/LICENSES.txt<\/code>. Rebuild it from source with <code>npm ci &amp;&amp; npm run build<\/code> (the build is <code>assets\/js\/build-datatables.mjs<\/code>); <code>npm run dist<\/code> produces the distributable package. No code is obfuscated.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>New: Fuzzy search (typo-tolerant), Inverted filter (show non-matching rows), and Row filtering (server-side, show only rows matching a rule).<\/li>\n<li>New: Row reorder (visual drag, per session), Advanced pagination (pagination style + custom page-length menu), and Table layout (reposition the controls).<\/li>\n<li>New: Default table style \u2014 a site-wide customizer for header\/stripe\/border\/hover colours, striping, row density and border style.<\/li>\n<li>Bundles DataTables RowReorder (MIT); see the source note below.<\/li>\n<\/ul>\n\n<h4>1.6.1<\/h4>\n\n<ul>\n<li>Accessibility: the column filter dropdowns and search inputs now carry accessible names; the alphabet bar is labelled, exposes the active letter to screen readers, and its disabled letters are keyboard-safe.<\/li>\n<li>Hardening: cell values are now read as inert text when building column filter dropdowns and the alphabet bar, so table content can never execute markup.<\/li>\n<li>Hardening: all inline configuration is JSON-encoded with HTML-safe flags.<\/li>\n<li>Housekeeping: the bundled script URL is versioned for correct cache-busting on updates; removed a redundant textdomain load (WordPress loads translations automatically); tested up to WordPress 7.1.<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>New: Index\/counter column, Alphabet search, Auto pre-filter, and content highlighting (colour cells\/rows by their content). With the index column on, all other features' column numbers still refer to your original data columns.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>New: Column search fields \u2014 a debounced, as-you-type text search input per column (substring). Coexists with the dropdowns in one filter row and follows column reorder.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>New: Column reorder \u2014 visitors drag columns to reorder; the order persists per visitor (30 days) with a reset button, and column filter dropdowns follow the new order.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>New: Search highlighting \u2014 the current search term is highlighted in matching cells (via mark.js).<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>New: Search builder \u2014 condition-based filtering (column + condition + value, with AND\/OR groups).<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: Search panes \u2014 filter panes above the table with per-value counts, cascading, and totals.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: responsive mode, column filter dropdowns, export buttons (Copy\/CSV\/Print), fixed header, frozen columns, and row grouping.<\/li>\n<\/ul>","raw_excerpt":"Responsive mode, column filters &amp; search, export buttons, fixed header, frozen columns, row grouping and more for free TablePress tables.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/377133","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=377133"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/nihad1122"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=377133"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=377133"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=377133"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=377133"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=377133"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=377133"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}