I have a static homepage with a custom template I.E hompage.php the blog loop is set to a static page named blogg, it uses the index.php page as a template, there a collection of other pages using the index.php as the default template so i am reluctant to change it. is there anyway to stop the blogg page from using index.php and give the blog page it's own template page such as blogg-template.php? kind regards Chris
Please consult the Template Hierarchy, and ensure that you are using the correct names for template files.
index.phpshould be left as the default fallback for all other template files
- The site front page template file name is
front-page.php. You need to rename your
- The blog posts index page template file name is
home.php. WordPress will always and only ever use either
index.phpfor the blog posts index (unless the blog posts index is set to display on the site front page, and
front-page.phpexists). No other template files will be used, regardless of what you name them, or whether or not you assign them as custom page templates to the page used to render the blog posts index.
front-page.phpas your custom front-page template
home.phpas your blog posts index page template
- Create two static pages, of any name; e.g. "Front Page" and "Blog"
- Go to
Dashboard -> Settings -> Reading
- Set Front Page Displays to a static page
- Set Front page dropdown to "Front Page" static page created in step 4
- Set Posts page dropdown to "Blog" static page created in step 4
To modify the blog page (aka "Page for Posts) (which is the "home" page, even if it's not set as your "front page"), you should use the
home.php template. The blog will automatically use it.
index.php is only used for your blog if
home.php is not present in your theme's folder.
If you try to select a Custom Page Template on the page set to the "Page For Posts" setting on Settings > Reading, it will be ignored. You have to use