Applies to: WordPress 7.1.2 with the Twenty Twenty-Five theme (block theme); the Reading settings work the same with classic themes
To give your blog posts their own page in WordPress, create two pages (for example Home and Blog), then go to Settings, Reading, choose A static page (select below) under Your homepage displays, pick Home as Homepage and Blog as Posts page, and select Save Changes. WordPress then lists your posts on the Blog page automatically. To show posts inside an ordinary page instead, add a Latest Posts or Query Loop block.
1. Create the two pages
- Go to Pages, Add Page.
- Create a page called Home with your homepage content and publish it.
- Create a page called Blog (or News, Articles) and publish it. Leave it empty: WordPress ignores its content once it is the posts page. In our test, text typed into the Blog page never appeared on the site; only the post list did.
Help with pages: manage pages in WordPress.
2. Set the homepage and posts page
- Go to Settings, Reading.
- Under Your homepage displays, select A static page (select below). The default is Your latest posts.
- Choose Homepage: Home, and Posts page: Blog.
- Set Number of recent posts shown on archive pages (called “Blog pages show at most” in older versions; 10 by default).
- Select Save Changes.
In the Pages list the two pages are now marked Front Page and Posts Page. If you open the Blog page in the editor, WordPress shows the warning “You are currently editing the page that shows your latest posts.”
With WP-CLI the same settings are three options (use your page IDs):
wp option update show_on_front page wp option update page_on_front 7 wp option update page_for_posts 8
3. Add the Blog page to your menu
Check that your site menu links to the Blog page. In a block theme, edit the Navigation block in the site header under Appearance, Editor; in a classic theme use Appearance, Menus.
4. Change how the posts page looks
With a block theme, the posts page uses the Blog Home template. WordPress describes it as the template that “displays the latest posts as either the site homepage or as the ‘Posts page’ as defined under reading settings”. Edit it under Appearance, Editor, Templates. Twenty Twenty-Five includes this template (home.html). In a classic theme the design comes from the theme’s home.php or index.php.
Show posts inside any page
If you want posts on a page that also has its own text, such as a News section on your About page, don’t use the posts page setting. Edit the page and add a block:
- Latest Posts: a simple list. In the block settings you can limit it to a category, set the number of posts (5 by default) and show the date, author, excerpt or featured image. In our test, a Latest Posts block set to the News category and two posts showed only those two News posts, with dates, under the page’s own text.
- Query Loop: full control over the layout (title, image, excerpt, pagination) and filters. Use it when the list should look like the rest of your theme.
If it doesn’t work
- The homepage still shows posts: check that A static page is selected and saved, and that both pages are published, not drafts.
- The Blog page shows its own text instead of posts: it is not set as the Posts page; check Settings, Reading again.
- “Warning: these pages should not be the same!” on the Reading screen: you picked the same page twice. Homepage and Posts page must be two different pages.
- The Blog link gives a 404: open Settings, Permalinks and select Save Changes to rebuild the permalink rules.
Writing your first post: write and publish a blog post in WordPress. Starting a new WordPress site? Our web hosting plans include free SSL and email.
Official documentation: Settings Reading screen and create a static front page.