Why is style.css breaking my custom Wordpress theme? - wordpress

I have a clean install of WP 3.0.1, installed through cPanel and have created a directory for my new theme at /wp-content/themes/mytheme.
With an empty directory, the theme does not appear in the theme manager of the WP backend (as expected). If I add any PHP files (e.g. "page.php"), a warning appears in the theme manager that "mytheme" is broken because there is no style.css (again, as expected). But when I add style.css to the directory, the warning disappears and my theme is nowhere to be found in the theme manager. What's going on here?

Inside your style.css file you have to make sure that you are calling the default settings which wordpress will pick up, if you open up the default theme 'twentyten/style.css'
you will see this at the top..
/*
Theme Name: Twenty Ten
Theme URI: http://wordpress.org/
Description: The 2010 theme for WordPress is stylish, bla bla bla
Author: the WordPress team
Version: 1.1
Tags: black, blue, white, two-columns, fixed-width, etc..etc..etc..
*/
this has all the information wordpress needs inorder to include that theme in your appearence section.
once you have this inside your 'Mytheme' folder it will show up in the theme section, if you create a small png file called 'screenshot.png' add this inside your MyTheme folder, this will show up as the thumbnail for that theme... again look inside the twentyten folder and see how the files are arranged, this will give you a better understanding of how wordpress themes are built...
best thing to do while creating a new theme from scratch is possibly creating a copy of the twentyten folder and edit out all the un-required elements..
that gives you a good building block to work against.
or if you want there are a few themes out their which are naked themes, meaning they have the bearbones of what a theme needs then you can built upon..

Related

Broken theme after WordPress update

I just updated to WordPress 4.8.3 to find that my custom parent theme is broken. It's been a while since I've worked on it, so I'm not completely fresh on everything, but the error in WordPress is as follows:
Template is missing. Standalone themes need to have a index.php template file. Child themes need to have a Template header in the style.css stylesheet.
I don't need the Template header because this isn't a child theme and my theme folder does have an index.php template in ~/www/website/wp-content/themes/theme/. Has anyone else encountered this? Googling just points to the solution being the missing Template header in style.css. Thanks in advance.
My style.css only contains the following headers:
/*
Theme Name: Portfolio
Theme URI: http://www.website.com
Author: Author Name
Author URI: http://www.website.com
Description: Custom theme converted from Bootstrap template
Version: 1.1
*/
In case this happens to anyone else, the solution was moving my style.css into the theme's root directory. Previously, it was in a css folder, which worked fine.

Can I change the theme name in WordPress?

How can I change the theme name in WordPress and where?
Can I also change the folder name theme1244 in public/wp-content/themes/theme1244 without having problems in the future?
Step 1: Firstly go to wp-content/themes/ folder. And then rename your theme folder to whatever you want.
Step 2: Open your theme folder and open style.css file. In top part of style.css you will see theme name. Rename it and save changes.
Step 3: Go to Wp-admin/appearance/themes and activate your theme under new name.
If you are using child/parent theme and you also rename parent theme folder&name, so after Step 3 you should additionally change parent theme path (template field) in child theme’s style.css.
note : renaming your theme will stop its automatic updates, you should do it manually in the future.
All the above is correct, but is not enough. After you rename the theme, e.g. rename the folder old-theme --> new-theme, you should copy the theme customizations (colors, header / footer, widgets, etc.) from the old theme to the new theme. This is done directly in the MySQL database:
Find an option named theme_mods_old-theme in the table wp_options
Copy the option_value (it is a text holding the theme customizations in a special WordPress format)
Put the copied value in a new option named theme_mods_new-theme in the wp_options table.
You can absolutely change the name of the folder without having any problems. If you want to change just the themes name, open the style.css in the root folder of your theme and edit the name in the comments at the top of the file. If you plan on doing more changes, you might be better off creating a child theme: https://codex.wordpress.org/Child_Themes
I changed my theme name in wp-content/themes/{your site name folder}/style.css
I am using a child theme
/*
Theme Name: WhateverYouWantToNameIT
Template: twentytwenty
*/
The answers above are good, but I wanted the full list and this is it
so go to: wp-content/themes/{your site name folder}/style.css
and change this values if they exist, if not you can add them
/* this should be at the top of your theme CSS file
Theme Name: Twenty Fifteen Child
Theme URI: http://example.com/twenty-fifteen-child/
Description: Twenty Fifteen Child Theme
Author: John Doe
Author URI: http://example.com
Template: twentyfifteen
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready
Text Domain: twentyfifteenchild
*/
See Source for more details
Its absolutely easy and simple, just follow instruction
1. Just rename theme name with your desire theme name.
2. open your desire theme name and open style.css file, and find theme name and changes with your desire theme name.
3. you can see your desire theme in admin dashboard-> appearance-> themes, just select and activate it.

wordpress child theme not working

i am new to word press now i am working on wordpress child theme. now i am going to creat child theme of " Chulavista " theme.
i just creat a sub directory and creat file with name of style.css
in my style.css just place this code
#charset "utf-8";
/* CSS Document */
/*
Theme Name: chulavista Child
Theme URI: agilesoft.us
Description: Chulavista child Theme
Author: Agilesoft
Version: 1.3
License: GNU General Public License
Template: chulavista
Tags:
*/
#import url("../chulavista/style.css");
its simple. but when i activate child theme the layout font and header will be change and show recent post, meta, and category in top menu div.
i can't understand this behaviour. because when i activate parent theme it will be correct.
Please help me out of this problem...
Thanks in advance
Your style.css is correct, your problem is something else.
I will assume that you are working on a Linux Environment.
If you want to install custom themes manually copying your theme directly in the wp-content/themes folder, be sure you create a symbolic link for it as well:
Example:
sudo ln -s /var/www/wordpress/wp-content/themes/your_theme/ /var/lib/wordpress/wp-content/themes/your_theme
I had the same problem as you and I fixed it by creating the symbolic link. Hope this helps.
The Child theme is an individual theme which relies on the Parent's theme files. When you activate the Child theme, you have to set the Appearance settings for the theme. Similar to what you do while activating another Parent theme.
Note that the layout font might be changing due to the same reason.
Does Chulavista support child themes? If it hasn't been written with child themes in mind, it might not properly support them. e.g. if it uses get_template_directory_uri() instead of get_stylesheet_directory_uri(). Check the functions.php and header.php files in the Chulavista theme to see if that is the case.

Template Dropdown not showing up within Wordpress administrator page

I am working on a Wordpress-based project, and I just added a new template to the installation by uploading a template file. I was creating a new page that will use my new template, when suddenly, the "Template" dropdown in the "Page Attributes" box is gone.
I am using Wordpress 3.0.1.
Update:
I saw a site which told me to revert to the default template, and back to my custom template. Apparently it worked, but I am still baffled on what triggers this bug. Also, any additional knowledge or pointers on this bug would be a great help since my job requires me to patch this (and possibly submit the bug fix to Wordpress). Thanks!
If you have disabled or removed the style.css from the template directory then also it will not work.
So there must be the style.css on template directory then the templates directory will be shown. When you try to remove the style.css from the template directory or using style.css from css folder, then you must be put one style.css on template directory.
Thanks
Morichika is spot on. I had the same problem, but then it sorted itself out by doing:
<?php
/**
* Template Name: Front Page
*/
?>
I have found a different solution for this. I reactivated my custom theme but then problem persisted.. then in the top most section of the code for the custom page template where it actually defines the name of the template like this:
<?php
/*
Template Name: Front Page
*/
?>
I did this:
<?php
/**
* Template Name: Front Page
*/
?>
Then refreshed the admin panel and it appeared.Seems a bit weird but it worked for me. Feel happy to share this.
I tried many of the suggested answers. None worked in my case.
A possible reason for the Template Dropdown not showing is a missing index.php in your Theme folder.
Just create an empty one, in case your hierarchy does not need one. But the existance of that file enables the option to choose the page template and suppresses an error message in the Choose-Theme page btw
Put style.css in your theme directory, instead of the css folder. Or
<?php
/*
Template Name: Front Page
*/
?>
There must not space between "Template Name:".
I managed to fix this by making sure the style.css in the theme root contained the theme comments. I deleted the whole stylesheet and it removed the templates dropdown.
Put this at the top of your theme root's style.css.
/wp-content/themes/YOUR_THEME/style.css
/*
Theme Name: Twenty Thirteen
Theme URI: http://wordpress.org/themes/twentythirteen
Author: the WordPress team
Author URI: http://wordpress.org/
Description: The 2013 theme for WordPress takes us back to the blog, featuring a full range of post formats, each displayed beautifully in their own unique way. Design details abound, starting with a vibrant color scheme and matching header images, beautiful typography and icons, and a flexible layout that looks great on any device, big or small.
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: black, brown, orange, tan, white, yellow, light, one-column, two-columns, right-sidebar, flexible-width, custom-header, custom-menu, editor-style, featured-images, microformats, post-formats, rtl-language-support, sticky-post, translation-ready
Text Domain: twentythirteen
This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others.
*/
https://codex.wordpress.org/Theme_Development#Theme_Stylesheet
Or if you have a custom theme...
/*
Theme Name: My Wordpress Theme
Theme URI: https://example.tk
Author: Me
Author URI: https://example.tk
Description: This is my custom theme
Version: 1.0
*/
I know is super late for this question, but I fix it adding
Version: 0.1 alpha
in the comments of the themeFolder/style.css
This is my style.css complete for my theme
/*
Theme Name: Stockout Theme
Theme URI: http://stockout.com.uy/myTheme
Author: MauriPastorini
Author URI: http://stockout.com.uy
Description: This is a theme for stockout page
Version: 0.1 alpha
*/
I hope someone find this useful
I had the exact same problem with WordPress 3.2.1. I added a new template and the menu disappeared from the page add/edit screen. The solution was to switch back to the default twentyeleven theme end then right back to my custom theme. The templates drop-down began appearing again.
BTW, you said "revert to the default template, and back to my custom template" but I'm pretty sure you meant theme. I'm guessing where you saw this was here:
http://wordpress.org/support/topic/template-file-drop-down-not-appearing
Looks like this bug has existed for a couple of years at least. I filed a report:
http://core.trac.wordpress.org/ticket/18324
Try this. template will be available for both page & post
<?php
/**
* Template Name: Blog Post
* Template Post Type: post, page
?>
In WordPress 5.8 they have moved the selectable custom templates out from under the Page Attributes section so no matter what you do you won't find it there (even if you spend 2hrs troubleshooting like I did, lol).
Custom selectable templates have now been moved into their own box call "Template". For me, it was at the top of my right-hand sidebar in the WP admin page editor. It's possible it may not show if it has been unchecked in your screen options settings which are now found under the three dots in top-right --> Preferences --> Panels --> Ensure "Templates" is checked.
I'm not sure if I just overlooked it for 2hrs straight or if it appeared only after I changed to a different theme then changed back.
I had this problem a while back and found one janky solution after a lot of search--sometimes switching to another theme in your install and then switching back to you primary theme will make your templates appear. I know that sounds weird, but worked for me for a while.
I've had this problem for two days. This forum and a couple of tests later did the work. Here is what was missing for my part.
Be sure that there is a style.css in your theme folder.
The style.css must have a valid comment section at the top of the file.
This means at least this:
/*!
Template: your-theme
*/
If you're using SASS or LESS, make sure that you have a "!" just after declaring your comment. It's to prevent SASS or LESS to delete your comment section.
To be sure that everything is settled fine. You may go to "Appearance > Themes". After the listing of themes, if there is nothing, than everything should be fine. Otherwise, it'll be written "Broken Themes" and you'll still have some issues to solve.
sass had deleted the content in my child style.css. The template drop down shows again once I added back the comments.
/*
Theme Name: Sometheme Child
Description: Child theme for Sometheme.
Template: sometheme
Version: 1.1
Text Domain: sometheme-child
*/
You will not see the dropdown if you have added 0 custom template files in your theme root.
When at least 1 template is available, the WordPress ecosystem picks it up and the dropdown will become visible.
Add this in your theme root to try it.
<?php
/*
Template Name: Front Page
*/
The Template Dropdown is now moved To Page Section and is located just between the Static and Visibility and Permalinks dropdown. But you will be able to see it if you are naming your custom file like
page-Yourfilename.php
and adding a comment on the top of the file
<?php
/*
Template Name: YOUR TEMPLATE NAME
*/
?>
I was just facing the same issue so, the problem is in spacing between 'Template Name' and that colon.
/*
Template Name: template-name
*/
Make sure there is no spacing before the colon.
I found the root of the problem.
It is the style.css file inside the theme root.
It must be in "UNIX encoding".
It must have all comments with "Theme Name", "Version", etc.
Jack Nicholson was right! You need to make sure your style.css contains the full comment. Example below:
Previously mine was:
/*
Theme Name: Acadata
Theme URI: https://www.factorypattern.co.uk
Description: Custom
Author: Factory Pattern
Version: 1
License: GNU General Public License
License URI: license.txt
*/
Then I changed it to the below and now I can see all my templates.
/*
Theme Name: Acadata
Theme URI: https://factorypattern.co.uk/
Description: Custom
Author: Factory Pattern
Author URI: https://factorypattern.co.uk/
Description: The Acadata theme for WordPress.
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: black, brown, orange, tan, white, yellow, light, one-column, two-columns, right-sidebar, flexible-width, custom-header, custom-menu, editor-style, featured-images, microformats, post-formats, rtl-language-support, sticky-post, translation-ready
Text Domain: acadata
This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others.
*/
Please set properly you style.css file specially if you are working on child-theme
/*
Theme Name: Theme Name
Theme URI: http: //mysite.com/
Description: This is a custom child theme for xxx theme
Author: My Name
Author URI: http: //mysite.com/
Template: template_name_in_lowercase
Version: 0.1
*/
This below is work for me and show template option in page attributes.Just place .php file in theme root folder.
<?php
/* template name: my custom template */
?>
There are a lot of great answers on this question, but one obvious solution, which initially escaped me, was to double-check that in Dashboard > Settings > Reading you want to set "Your homepage displays" to "Static Page" and then leave the "Posts Page" unselected.
While themes and a properly coded theme file play a role in the situation, the reason that the page attributes area on the edit page screen doesn't show the templates drop-down may be because you selected a particular page to be your "Posts Page", and so WordPress is not asking you for a custom template to use because it's already using front-page.php or home.php (See WordPress Template Visual Hierarchy).
Hope this helps someone like me who had a properly coded template file but didn't realize this setting had been selected.
This was also a problem for me and it was because of folder structure. The Theme Handbook told me a should organize my theme folder and files like so:
assets (dir)
- css (dir)
- images (dir)
- js (dir)
inc (dir)
template-parts (dir)
- footer (dir)
- header (dir)
- navigation (dir)
- page (dir)
- post (dir)
404.php
archive.php
comments.php
footer.php
front-page.php
function.php
header.php
index.php
page.php
README.txt
rtl.css
screenshot.png
search.php
searchform.php
sidebar.php
single.php
style.php
The page template I was trying to load was in /template-parts/page/template-contactus.php
I guess that was too deep for WordPress so I got ride of those directories and now my file structure looks like this:
assets (dir)
- css (dir)
- images (dir)
- js (dir)
inc (dir)
template-parts (dir)
- section-content.php
- template-contactus.php
404.php
archive.php
comments.php
footer.php
front-page.php
function.php
header.php
index.php
page.php
README.txt
rtl.css
screenshot.png
search.php
searchform.php
sidebar.php
single.php
style.php
I am now able to see the template drop-down and add templates.
Hope this helps someone.
In my case, I had called the template schedule-template-v2.php which won't work, the file name needs to be schedulev2-template.php. A simple mistake.
In addition to all of the above, make sure that you have 'page attributes' checked in the screen options panel in the top right, otherwise the page attributes section wont show regardless.
If you are trying todo with blog page the GOTO Dashboard > settings > and remove post page from select menu :)
After searching I have found a stupid solution that was obvious because. Couldn't catch it because the templates were put in other place of interface attaching screenshot

Is the syntax for the Wordpress style.css template element available anywhere?

I've recently embarked upon the grand voyage of Wordpress theming and I've been reading through the Wordpress documentation for how to write a theme. One thing I came across here was that the style.css file must contain a specific header in order to be used by the Wordpress engine. They give a brief example but I haven't been able to turn up any formal description of what must be in the style.css header portion. Does this exist on the Wordpress site? If it doesn't could we perhaps describe it here?
Based on http://codex.wordpress.org/Theme_Development:
The following is an example of the first few lines of the stylesheet, called the style sheet header, for the Theme "Rose":
/*
Theme Name: Rose
Theme URI: the-theme's-homepage
Description: a-brief-description
Author: your-name
Author URI: your-URI
Template: use-this-to-define-a-parent-theme--optional
Version: a-number--optional
Tags: a-comma-delimited-list--optional
.
General comments/License Statement if any.
.
*/
The simplest Theme includes only a style.css file, plus images if any. To create such a Theme, you must specify a set of templates to inherit for use with the Theme by editing the Template: line in the style.css header comments. For example, if you wanted the Theme "Rose" to inherit the templates from another Theme called "test", you would include Template: test in the comments at the beginning of Rose's style.css. Now "test" is the parent Theme for "Rose", which still consists only of a style.css file and the concomitant images, all located in the directory wp-content/themes/Rose. (Note that specifying a parent Theme will inherit all of the template files from that Theme — meaning that any template files in the child Theme's directory will be ignored.)
The comment header lines in style.css are required for WordPress to be able to identify a Theme and display it in the Administration Panel under Design > Themes as an available Theme option along with any other installed Themes.
The Theme Name, Version, Author, and Author URI fields are parsed by WordPress and used to display that data in the Current Theme area on the top line of the current theme information, where the Author's Name is hyperlinked to the Author URI. The Description and Tag fields are parsed and displayed in the body of the theme's information, and if the theme has a parent theme, that information is placed in the information body as well. In the Available Themes section, only the Theme Name, Description, and Tags fields are used.
None of these fields have any restrictions - all are parsed as strings. In addition, none of them are required in the code, though in practice the fields not marked as optional in the list above are all used to provide contextual information to the WordPress administrator and should be included for all themes.
You are probably thinking about this:
/*
THEME NAME: Parallax
THEME URI: http://parallaxdenigrate.net
VERSION: .1
AUTHOR: Martin Jacobsen
AUTHOR URI: http://martinjacobsen.no
*/
If I'm not way off, Wordpress uses this info to display in the "Activate Design" dialog in the admin backend.

Resources