Wordpress themeing - wordpress

I am relatively new to wordpress, I am creating a custom theme, and so far it is going ok.
I currently have index.php, header.php, footer.php and sidebar.php.
I have now hit a bit that has been puzzling me for a couple of days.
My home page has a slightly different layout to other pages, how do I theme for that change?
My website is essentially made up, of 'static' pages and 2 posts pages, what can I do so that the homepage looks different to the other pages?

Create a page template called home.php. WordPress will use it automatically for the start page.
Example:
<?php
/**
* Template Name: Home
*/
get_header();
// Do your regular page.php stuff
get_footer();
See also the codex page an Conditional Tags.

Go into your dashboard, settings>reading, check what the setting is for your home page display. You may need to change it from the default "list of latest posts" to a static page of your choosing.

You need a front-page.php
Please see the template hierarchy

You need to use the built-in functions from wordpress such as is_home() and is_front_page().
Conditional Tags

If you have a front-page.php that will take precedence over home.php or page.php. Whether or not home.php or page.php are defaulted to (assuming you have both) can be controlled in Settings → Reading. If you do not have a front-page.php, home.php, or page.php, then index.php would be defaulted to.
One difference between home.php and front-page.php is that home.php defaults to being a blog index page. Though both home and front-page may be used to display static or blog index pages.
More info may be found Wordpress' Template Heirarchy page.

Related

How can I set a specfic Wordpress page as landing page (but it should keep the permalink)?

I'd like to set the Wordpress page https://hartmannventures.com/success-stories/ as landing page. It should keep the permalink as it is now (/success-stories). Furthermore, the "home" page https://hartmannventures.com/ should keep it's permalink like it is now (/). I tried to set it with the static page settings, but then the "Success Stories"-page turns into the home page (/).
Thanks for your help!
General Settings (I'm afraid of changing something of that)
Reading Settings (Static Page) (That's what didn't work -> Changed it back to Home again)
You need to create a separate template page inside them for that page, with that you no need worry about anything and it will not affect on the home page.
Template Format
<?php /* Template Name: Template name*/ ?>
<?php get_header();?>
HTML
<?php get_footer();?>

WordPress page link goes very wrong

I'm building a theme that would have essentially 2 pages, one would be a workshop, and the other would be an art page.
The main page for the domain has header(), footer() the content file is named front-page.php where I noticed that WordPress disregards the "Reading settings" of "Your homepage displays" ( Your latest posts / A static page )
I've created art-page.php to include new headers and footers for art (header('art'), footer('art'))
I followed the WordPress Codex of creating a new page, so art is a page I've published, seen that it's ID is 1742, I created the home page link to art as: <div id="art-link"></div>
Result:
When pressing on that link, it loads /the-art with a 200 response, including all the css and js for it, yet it loads the home page and under the footer of the home page it creates another home page with the header, then in the content a row with "art" (the name of the page) following by the main footer.
Expected result:
From the home page, click on the art link from above, wordpress will load art page (art-page.php) as a whole new page.
art-page.php
get_header('art');
?>
</div>
<h1>test art</h1>
<?php
get_footer('art');
?>
I'm a programmer with a basic grasp of the wordpress, yet struggling to create the expected result above.
Thanks,
Bud
I now study how to make a theme in wordpress.
First you need an Index.php file and a style.css file (these two files are the minimun)
You can cut the upper part of index.php and create the header.php an the down portion and create the footer.php.
You can have a static page as 1st page and the filename can be front-page.php and another page for blog.
BUT if you want to see a set of archives you use archive.php (post in same category, or of the same author e.t.c)
IF you want to see a post (one) you use the single.php or page.php for a single page.
In wordpres we have pages (static content like About us) and post this can written new info from author.
If you have difficulty, read a givem default theme, or use a starter theme and convert it to what you want.
Some starter themes to use are:
https://underscores.me/ (from authors of wp)
http://jointswp.com/ (Freamework foundation)
https://understrap.com/ (Bootstrap 4)
Before to start read about theme hierachy in wordpress
https://developer.wordpress.org/themes/basics/template-hierarchy/
example themes
https://medium.com/pixelperfecthtml/step-by-step-guide-to-convert-html-template-to-wordpress-theme-8d89264eb4be
https://www.elegantthemes.com/blog/tips-tricks/converting-html-sites-to-wordpress-sites

how to create static front page without using index.php

WordPress:
I am trying to create a Static Home Page without using index.php
I have created a post page using index.php
I have created a front-page.php for the Home-Page.
I go to Setting>Reading>Front page: Home and then again
Setting>Reading>Posts page: (Name of Post page)
My Problem: Front-page showing "PostPage"
How to solve this issue?
You should create a template name for your front-page.php.
Add this lines before the get_header();
<?php
/*
Template Name: homepage(or everything you want)
*/
?>
After that go to pages on wordpress and add to the page you want to set as frontpage the template homepage(or everything you want).
Go to Setting>Reading>Front page and set the page which has the template as front page.
I found this answer. I made a copy of index.php and renamed it home.php. And its working nice!

Wordpress: create a custom home page

I want to create a website using wordpress, but I want my website to have a customized home page, created by me, completely different from the theme of the site, and then link the wordpress pages directly from my page.
Is this possible? How can I achieve this?
Can I simply create the page, and link the other created with the wordpress panel, without breaking everything?
According to official WordPress codex:
If a visitor goes to your home page at http://example.com/blog/, the following happens:
WordPress first determines whether it has a static front page. If a static front page has been set, then WordPress loads that page according to the page template hierarchy.
If a static front page has not been set, then WordPress looks for a template file called home.php and uses it to generate the requested page.
If home.php is missing, WordPress looks for a file called index.php in the active theme's directory, and uses that template to generate the page.
Therefore you just need to create a home.php template and place it with the other theme (which so ever theme you will use) templates and WordPress will automatically start using home.php template for the home page.
Just copy the default page.php template file and call it front-page.php. Change the configuration at the top of that file. Now create a new page called home.
Go to Administration > Settings > Reading panel and set a static front page.
For more help check this link on the Wordpress website:
https://codex.wordpress.org/Creating_a_Static_Front_Page
If you create HTML off your home page first than this is easy for you
First Create a file Like this "template-home.php" in your theme.
Now in "template-home.php" First you must write these lines at the top of the page
<?php
/* ==========
Template Name: Home
========== */
?>
After that add your header.php and footer.php like this:
<?php get_header(); ?>
// Your Content is here
<?php get_footer(); ?>
Now your Whole HTML is work between in Header and Footer
Then Go to your Admin Panel
Go to Pages > add new
and create a page named "Home"
NOTE: When you create a page Please Select a Template of Home and "Publish" it.
Then go to Settings > Reading and select "A static page (select below)" radio button, then a drop down is active and select your "Home" Page Then click on save changes.
I hope this will help you
You can create a front-page.php file in your active theme folder.
It can be use for both Your latest posts or a static page as you want.

How do I edit HTML on WordPress post page?

I'm using WordPress and I've made a number of posts. What file do I need to edit, so the same HTML shows on the bottom of all the posts?
there are so many file wordpress theme structure if you want to edit:
(i think you Edit single.php)
page.php : use for simple page
index.php : use for post page
single.php : use for single post if you want to change ur post setting
similerly footer.php, header.php
The default name of the template file used to display pages in Wordpress is named page.php. It is located in your current theme.

Resources