Beginner's Guide for WordPress / Start your WordPress Blog in minutes

How to Add Tables in WordPress Posts and Pages (No HTML Required)

Do you want to add tables in WordPress posts and pages? Tables are a great way to display data in an understandable format.

In the past, you needed to use a plugin or HTML code to create a table in a WordPress post or page.

In this article, we’ll show you how to create tables in WordPress posts and pages without using a plugin or any HTML code. We’ll also cover how to create advanced tables in WordPress with sorting and search features.

Adding tables in WordPress without writing any HTML

Video Tutorial

Subscribe to WPBeginner

If you’d prefer written instructions, just keep reading.

Creating Tables in the WordPress Block Editor

WordPress makes it super easy to add tables using the default WordPress block editor.

Simply create a new post or page, or edit an existing one. Once inside the content editor, click on the (+) symbol to add a new block, then select ‘Table’.

You can find it under the ‘Formatting’ section ,or you can type ‘Table’ into the ‘Search for a block’ bar.

Adding a 'Table' block in the WordPress block editor

Next, you’ll be prompted to choose how many columns and rows you want for your table. Both figures default to 2.

Don’t worry if you’re not 100% about the exact count because you can always add/remove table columns and rows later.

Type in the number of columns and rows you want for your table

We’ve created a table with 3 columns and 4 rows:

Our table created using the WordPress block editor

You can type in the table cells, and they’ll automatically resize depending on how much content is in each. If you’d prefer your cells to be fixed-width, then you can set this option on the right-hand side.

You can also add a table header or footer section here. In our example, we have added a header for our table, and we have also set the background color to gray under the ‘Color Settings’ tab.

Adding a header section or a background color to your table

If you want to add a new row or column, just click on a cell at the point in the table where you want to add it. Next, click the ‘Edit Table’ button.

Here, we’re adding a new column on the right hand side of our table:

Adding a new column to your table

You can also delete rows and columns in the same way. Just click on a cell in the row or column you want to remove, and select ‘Delete Row’ or ‘Delete Column’ from the ‘Edit Table’ menu.

By default, the text in your table’s columns is aligned to the left. You can change this by clicking in a column and then clicking the ‘Change Column Alignment’ button:

Changing the text alignment for your columns

Here, we’ve applied center alignment to the three columns that have numbers:

All 3 columns with numbers in are now centered

You can also change the alignment of your whole table within the post or page by clicking the ‘Change alignment’ button and selecting an option from the list.

Changing the alignment of your whole table

Note that these options can make your table display beyond the normal boundaries of your post area. Some may look odd on your site, so please make sure to preview your post or page to check how they appear.

Here’s our table set to ‘Wide Width’ as it appears on the site:

A 'wide width' table that extends beyond the usual content area

As you can see, it stretches out beyond the left and right margins of the post area.

The table tools built into the Gutenberg editor give you a lot of flexibility about how you display your tables.

You can use it to show your data to readers in an easy to understand format. However the table block doesn’t have certain advanced features like search filtering, custom sorting, etc.

It also doesn’t let you easily use the same table across multiple areas of your website such as sidebar widgets or other pages.

To create advanced tables, you need to use a WordPress table plugin.

Creating Tables Using the TablePress Plugin

TablePress is the best WordPress tables plugin on the market. It is 100% free, and it allows you to easily create and manage tables.

The best thing is that you can edit your table separately and even add a large number of rows.

TablePress also becomes necessary, if you are using the older classic WordPress editor which does not come with tables functionality.

First, you need to install and activate the TablePress plugin. For more details, see our step by step guide on how to install a WordPress plugin.

You’ll then see a TablePress menu item in your WordPress dashboard. Go to TablePress » Add New to create a new table.

Adding a new table in TablePress

You’ll need to type in a name for your table and decide how many rows and columns you want. You can always add / remove table rows and columns later as well.

We’re going to create a table with 4 rows and 3 columns:

Entering the title for your table in TablePress

Once you have added the table name, rows, and columns, go ahead and click the ‘Add Table’ button to create your table.

Next, you’ll see a screen with your table’s information and an area where you can add content.

Editing your table details in TablePress

Simply type the data you want into the cells of your table. You can sort the columns of data using the arrows above them. These will sort in alphabetical or numerical order.

Sorting your table's columns in TablePress

There are advanced options below the ‘Table Content’ area. In ‘Table Manipulation’, you can do things like adding, removing, and duplicating rows:

The 'Table Manipulation' section of tools

In ‘Table Options’, you can add a header and/or footer row, which won’t be sorted in with the data. You can also decide where to show the table name and description:

The 'Table Options' section in TablePress

Finally, you can set various options in the ‘Features of the DataTables JavaScript library’ section. This allows you to create responsive tables that can be filtered, searched, and sorted by your readers.

Advanced javascript options for your table

Once you’re happy with your table, click ‘Save Changes’.

You can add your table to any post or page. Simply add the shortcode to a paragraph block or use the shortcode block.

Adding the shortcode for your table in the block editor

If you’re using the classic editor, then simply add the shortcode straight into your post:

Adding the shortcode for your table in the classic editor

If you want to change your table in the future, you can come back to TablePress in your dashboard and make changes. Your table will be automatically updated in any posts and pages you’ve used it in.

TablePress also allows you to import data from spreadsheets and CSV files. Similarly, you can also export a TablePress table data into a CSV file which you can then open with any spreadsheet program like Microsoft Excel or Google Sheets.

We hope this article helped you learn how to add tables in WordPress posts and pages without using HTML. You might also like our post on how to create an email newsletter, and how to make a contact form in WordPress.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Disclosure: Our content is reader-supported. This means if you click on some of our links, then we may earn a commission. See how WPBeginner is funded, why it matters, and how you can support us.

The Ultimate WordPress Toolkit

Get FREE access to our toolkit – a collection of WordPress related products and resources that every professional should have!

Reader Interactions

126 CommentsLeave a Reply

  1. Is there a way to show html without it being rendered in the front-end ? like i wanna show in the table cell, and i want the output as however, the table is treating it as if there’s an image. How do i solve that

    • It would depend on the method used but in your toolbar when you have a cell selected you should have the option of setting it as inline code for what you’re wanting to do :)


  2. The table is exactly what I need, but only if you can input number and display a column sum in the botom row,

    • To separate the content in your tables into different pages, you want to use TablePress and its pagination options.


  3. The background colors don’t work because you need to backspace the quotations and type in your own quotations. I found it by accident. If someone else has already figured that out my apologies but I wasn’t going to go through over 100 comments to check.

    • Thank you for sharing that should someone run into the background color not working for them :)


  4. Hi. I have an existing table with data of 6 columns and 750 rows. It would be difficult to re-type into blank table in WordPress page. Please advise how I can either import the entire table (can be Excel or Word) or copy and paste the cells’ contents into blank table.

    • You would want to take a look at TablePress and the import options available to bring in your table.


  5. Hi! I am wondering if it is possible to simply copy->paste a table from an existing document into WordPress? I have tried this and it doesn’t appear to work, but I am wondering if there is a trick to it that I am missing. Thanks!

    • It would depend on the document but we would normally recommend recreating the table in WordPress


  6. Classic editor does have table functionality and a plugin is not needed when using that editor. Check it out.

    • You would need to use a plugin to enable the classic editor and normally that would require using HTML :)


  7. Oh my word, thanks for the guidance on creating tables on WordPress and other resources you have been availing to us. Kudos to you.

  8. Hi
    I have installed the tablepress plugin.

    i have issue for user capability. In the user role plugin, i haven’t granted permission to “edit_other_user_tables”. But my contributor user role can still edit other’s table and delete it as well.

    How should i avoid access to other’s table?

    • You would want to reach out to TablePress to see if there is a built-in or recommended method for preventing editing of other tables.


  9. Great article.. how can we make parent child in this ? like 1st column’s 1st cell is parent cell and next to it we have information for it’s child info.. like three rows are need to be explained for that 1st cell next to it

  10. Sir when we click on the TablePress option in Visual editor then only list of table is showing in front of me. No Table creation option is available in Visual Editor. What should I do for create a new table in Post editor?

  11. Thanks for the video.

    What would you recommend to embed a formatted Excel sheet and collect data from registered WP users? (Like monthly usage reports, and the excel sheet also calculates the quarterly/yearly usage)

  12. HI

    Thank you for the video. I have created my table and chose Insert Image in one of the cells. It did let me choose the image but it then entered the URL to it rather than the image itself. Have I missed out a step??

    Thank you.

  13. This is a nice article boss.
    Thanks for sharing.
    But I do have a question.
    Is there no plugin I can install that can bring the insert table option into the icons on my wordpress post?
    Thanks as I await a reply

  14. I want to add a table of specification in which first column is same for all post and second column is different.
    How can I add this type of table in post??

  15. It would be very nice if, in the article about TAblePress it said that you have to upgrade to a business plan to use a plugin!!!!!!!!!!!! :(

  16. Is there any way to bold some lines of text in the table? Its all plain text, wish there was an easy way to add bold text

  17. Thanks a million for this plugin. All i needed was to prepare the list on excel and import it into wordpress.
    Sweet and time saving tool.

    Bless you guys for this piece

  18. Hi, I would like to create links in the table that forward to another page and pass the row number through or any field from the row. How would I do this?

    Options I can think of which are not straight forward
    1) Use localStorage\sessionStorage
    2) Pass the value in the URL but then the next page needs to read this on load – maybe not a bad idea ?

  19. Wow! such a fantastic tool!! BUT: the colors are so pale I cant see a thing?? How can I change the colors fo rows/columns?

  20. Think this only works for users of Is there any similar guide for those like me who use especially where I can use a coloured background to the cells in a table?

  21. Hello
    I was trying to make an interactive table similar to this that would use a query picking data from a database.
    I am using wordpress with a mysql/phpmyadmin database.

    My query works in phpmyadmin but does not show values in wordpress?

    SELECT * FROM `MyTablename` WHERE 1

    Do i need to use a list or print command or database name?

  22. I would definitely recommend this plugin. A reminder to blogger when moving from one hosting service to another: don’t forget to back up the tables. There’s no way to recover the data. And if you know how can you share the info.

  23. I recently was struggling to figure out how to add good-looking tables so this will be very helpful, thank you for publishing this.

  24. Hi guys,
    Thank you very much for support.
    This tablepress is interesting.
    I was looking a system to do something like that:
    In i have a table with some information and colums. table1 for example.
    I want when i press some region in my map, i can load an url, like /map#section

    Can i do something like load same table in another order? by some colum o something? instead of click in a column, click in a region and load the same url but with the “#” of this table in the order required.

    Thank you very much for support.

  25. Thanks for the info. I was wondering if the shortcode will have any SEO value. Is it likely that a table displayed with a shortcode will appear in Google Featured Snippet?

Leave a Reply to Molly Greger Cancel reply

Thanks for choosing to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and your email address will NOT be published. Please Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.