| 1 |
=== Posts Table with Search & Sort === |
| 2 |
Contributors: andykeith, barn2media |
| 3 |
Donate link: http://barn2.co.uk |
| 4 |
Tags: posts, table, tables, shortcode, search, sort, wpml |
| 5 |
Requires at least: 3.0.1 |
| 6 |
Tested up to: 4.7 |
| 7 |
Stable tag: 1.0.6 |
| 8 |
License: GPLv2 or later |
| 9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html |
| 10 |
|
| 11 |
A simple plugin to display all your posts in a searchable and sortable table or list. |
| 12 |
|
| 13 |
== Description == |
| 14 |
|
| 15 |
Posts Table with Search & Sort provides an easy way to list all of your site's posts in a searchable and sortable data table. |
| 16 |
Simply add the shortcode `[posts_data_table]` to any page. |
| 17 |
|
| 18 |
It uses the [jQuery DataTables](http://datatables.net/) plugin to provide the searching and sorting features, as well as pagination and |
| 19 |
responsive layouts for smaller screens. |
| 20 |
|
| 21 |
> **[Posts Table Pro](https://barn2.co.uk/wordpress-products/posts-table-pro/) now available, with lots more features including:** |
| 22 |
> |
| 23 |
> * Support for for pages and custom post types (e.g. courses, products, staff, music, books, etc) |
| 24 |
> * Featured images |
| 25 |
> * Custom taxonomies, terms and posts tags |
| 26 |
> * Custom fields & support for Advanced Custom Fields |
| 27 |
> |
| 28 |
> **[WooCommerce Product Table](https://barn2.co.uk/wordpress-products/woocommerce-product-table/) now available - create tables of products from your WooCommerce store:** |
| 29 |
> |
| 30 |
> * Include Add to Cart buttons, quantity, price, reviews, stock level, categories, tags, weight, dimensions, and more! |
| 31 |
|
| 32 |
Translations currently provided for French, Spanish and German (more to follow). |
| 33 |
|
| 34 |
It's compatible with WPML which means that, if you're using this, posts will be shown for the current language only. |
| 35 |
|
| 36 |
There are a few options available with the shortcode: |
| 37 |
|
| 38 |
* `columns` - the columns you'd like to show in your table. This can be any of the following as a comma-separated list: |
| 39 |
id, title, content, category, author, and date. Defaults to 'title,content,date,author,category' |
| 40 |
* `rows_per_page` - the number of posts to show on each page of results in the table. Set to 'false' to disable pagination. Defaults to 20 rows. |
| 41 |
* `category` - restrict the table to this category only. Use the category 'slug' here, NOT the name of the category. You can find the slug from the |
| 42 |
Posts -> Categories menu in the WordPress admin. |
| 43 |
* `sort_by` - the column to sort by. Defaults to 'date'. If the column you want to sort by isn't shown in the table, it will be added as a hidden column. |
| 44 |
This means, for example, that you can sort by date without actually showing the date column. |
| 45 |
* `sort_order` - whether to sort ascending ('asc') or descending ('desc'). If you order by date, it will default to 'desc' (newest posts first). |
| 46 |
* `search_on_click` - whether to enable automatic searching for categories and authors when clicking on links in the table. Default: true |
| 47 |
* `wrap` - whether the table content wraps onto more than one line. Set to 'false' to keep everything on one line or 'true' to allow the content to wrap. Default: true |
| 48 |
* `content_length` - the number of words of post content to show in the table (if you've included the 'content' column). Defaults to 15 words. |
| 49 |
* `scroll_offset` - advanced: the table scrolls back to the top each time you navigate forward or backwards through the list of posts. This |
| 50 |
value controls the 'offset' for the scroll. For example, if your site uses a sticky header you can adjust the scroll amount here to compensate. |
| 51 |
Enter a whole number (e.g. 50) or set to 'false' to disable scrolling to top. |
| 52 |
|
| 53 |
### Example |
| 54 |
|
| 55 |
The following will list your posts in a table with 3 columns (title, content and date) showing the first 10 words of each post: |
| 56 |
|
| 57 |
`[posts_data_table columns='title,content,date' content_length="10"]` |
| 58 |
|
| 59 |
### Demo |
| 60 |
|
| 61 |
Please see [the demo](http://barn2.co.uk/posts-table/) for examples of the plugin in action. |
| 62 |
|
| 63 |
== Installation == |
| 64 |
|
| 65 |
1. Upload the plugin files to the `/wp-content/plugins/posts-data-table` directory, or install the plugin through the WordPress plugins screen directly. |
| 66 |
1. Activate the plugin through the 'Plugins' screen in WordPress |
| 67 |
1. Add the shortcode `[posts_data_table]` to any page |
| 68 |
|
| 69 |
== Frequently Asked Questions == |
| 70 |
|
| 71 |
= How do I display the posts table? = |
| 72 |
Simply add the shortcode `[posts_data_table]` to any page. |
| 73 |
|
| 74 |
= Does it show all posts or can I restrict it to a certain category? = |
| 75 |
By default it will list all of your posts, but you can use the 'category' option in the shortcode to restrict the table to that category only. |
| 76 |
|
| 77 |
= What are the shortcode options? = |
| 78 |
See the main [plugin description](https://wordpress.org/plugins/posts-data-table/) for the list of options. |
| 79 |
|
| 80 |
= Can I see a demo of the plugin? = |
| 81 |
Yes, please visit http://barn2.co.uk/posts-table/ to see the posts table in action. |
| 82 |
|
| 83 |
= Will the posts table work with my theme? = |
| 84 |
The plugin has been designed to work with different WordPress themes and will take the styling from your theme for the fonts etc. where possible. |
| 85 |
If any parts don't match your site as well as you would like, you can restyle it using CSS or [contact us](http://barn2.co.uk/contact-a-wordpress-designer/) |
| 86 |
about our customization service. |
| 87 |
|
| 88 |
= Does the posts table work with custom post types? = |
| 89 |
No, it only displays standard WordPress Posts at the moment. |
| 90 |
|
| 91 |
= Can I change the width of the columns? = |
| 92 |
The column widths are calculated automatically by the jQuery DataTables, but you can override these by using the 'posts_data_table_column_defaults' |
| 93 |
filter. If you know your way around PHP, you'll need to add something like this to your theme: |
| 94 |
|
| 95 |
` |
| 96 |
add_filter( 'posts_data_table_column_defaults', 'change_posts_table_defaults' ); |
| 97 |
|
| 98 |
function change_posts_table_defaults( $column_defaults ) { |
| 99 |
$column_defaults['title']['width'] = '80px'; |
| 100 |
return $column_defaults; |
| 101 |
} |
| 102 |
` |
| 103 |
|
| 104 |
Bear in mind that DataTables might still override your column width if there isn't enough room for the data it contains, or the rest of the columns in the table. |
| 105 |
|
| 106 |
= Does it work on mobiles/tablets? = |
| 107 |
Yes, the table will automatically adapt to fit different screen sizes. If your table has too many columns to fit on smaller screens then a '+' icon will |
| 108 |
appear alongside each post, allowing you to click to view the hidden columns. |
| 109 |
|
| 110 |
= When I click to the next page on my posts list, I can't see the top of the table = |
| 111 |
This is probably because you have a sticky header (your header sticks to the top of the screen when you scroll down). This means it's covering the |
| 112 |
top of your posts table. You can add a 'scroll offset' to push the table down to prevent this from happening. For example, if your sticky header |
| 113 |
is 50 pixels high then use `[posts_data_table scroll_offset="50"]` |
| 114 |
|
| 115 |
= How do I use the posts table with WPML? = |
| 116 |
If you have a multilingual site using WPML then the plugin will display your posts in the correct language automatically. |
| 117 |
|
| 118 |
= Can you customize the plugin for me? = |
| 119 |
We have developed this free plugin to be flexible and easy to configure so that it will be suitable for many different websites. If you would |
| 120 |
like us to modify the plugin to suit your exact requirements, please [contact us](http://barn2.co.uk/contact-a-wordpress-designer/) with the |
| 121 |
details and we'll be happy to provide a quote. |
| 122 |
|
| 123 |
== Screenshots == |
| 124 |
|
| 125 |
1. Posts sorted by date and with wrapping disabled. Categories are collapsed automatically to fit data on single line. |
| 126 |
2. Different column order and with wrapping enabled (default). |
| 127 |
3. Filtered by post author and sorted alphabetically by title (ascending). |
| 128 |
|
| 129 |
== Changelog == |
| 130 |
|
| 131 |
= 1.0.6 = |
| 132 |
* Added Greek translation (credit: Yofis Florentin) |
| 133 |
* Added additional language locales for French/German |
| 134 |
|
| 135 |
= 1.0.5 = |
| 136 |
* Upgrade to DataTables 1.10.12 |
| 137 |
* Allow column default (priorities, widths, etc) to be set per table. |
| 138 |
* Prevent conflict if both free and Pro version of plugin are activated. |
| 139 |
|
| 140 |
= 1.0.4 = |
| 141 |
Fix bug with localization of main javascript file. |
| 142 |
|
| 143 |
= 1.0.3 = |
| 144 |
Fix a bug with the search and replace of column data, which produced invalid post URLs in some instances. |
| 145 |
|
| 146 |
= 1.0.2 = |
| 147 |
Added 'category' option to allow table to show posts from a single category only. |
| 148 |
|
| 149 |
= 1.0.1 = |
| 150 |
* Changed default for 'wrap' so content will now wrap onto multiple lines by default. |
| 151 |
* Changed default conent length to 15 words. |
| 152 |
* Additional FAQs. |
| 153 |
|
| 154 |
= 1.0 = |
| 155 |
Initial release. |
| 156 |
|
| 157 |
|
| 158 |
|