Author Info
P: themeforest.net/user/bitpub
W: www.bitpublimedia.ro
T: twitter.com/bitpub
Thank you for purchasing this template! For any questions that are beyond the scope of this documentation, contact me using the form on my Themeforest profile page.
Stay up to date: Follow me on ThemeForest || Twitter
The documentation is written in a step by step format. First it covers how to set up the template and then it goes into how to customize it and the last part ( Chapter 9 ) goes into details about how it runs and is intended to be read by those that want to modify / extend it's functionality above what it offers now.
Note: I wanted to make the documentation as beginner friendly as possible and for that reason you'll find that it also goes in details on things that are obvious to an advanced user. So if you are advanced just skim read the sections you are not interested in.
Note: Larger versions of the printscreens contained in this documentation open up in a lightbox if you click on the pictures.
If you have not set up your Wordpress installation yet, download the latest Wordpress version here: http://wordpress.org/download/.
You can find info on installing wordpress here: http://codex.wordpress.org/Installing_WordPress. It is worth checking out their famous 5 minute WP install tutorial.
Note: In this documentation I am assuming that Wordpress is installed directly in the root of your server. If it is not, you may need to adapt some of the file and folder paths provided below in the documentation to reflect that.
Note: I am assuming your starting point is a clean default wordpress instalation. Please only make configurations when you are asked to as this will ensure that you install and configure the theme without a problem. Thanks!
This theme uses only one sidebar where you place all your widgets, and then useing each widget's control field called "Widget logic" you control the pages that the widgets will appear on. This extra field is added through a plugin called Widget Logic.
More on this in the Set up the sidebar section but for now what is important to know is that you have to have this plugin installed to properly work with the sidebar.
Note: Please note that is a small chance that some post re-order plugins might affect the theme ( it can break the ordering parameter on some shortcodes - the shortcode will still work but you will lose some control over the ordering in it). If you think the theme is not running like it should and you have such a plugin installed please disable it and see how it works without it.
How to install Widget Logic widget
Preseneter Wp install options.
In order to install Solid WP Theme:
In order to activate Solid WP Theme:
After activation, preview this theme by right-clicking on your blog name (top left corner) and selecting "Open in new tab". Your theme should look very similar to the image below:
Solid WP theme right after activation
Right now it looks empty but it will start taking shape as we configure it in later stages.
In order to understand better what and why we are going to in the later sections of this chapter it is required that I explain how this theme was designed to work.
The main theme ideas:
What we will do next is create pages for each section of the website, add content and the shortcodes in them to achieave the desired layouts and functionality and then add posts to fill in the news, portfolio, blog and index slider. Finally we will create a wp menu to tie everything togheter and populate the sidebar and footer widgetable areas.
Note 1: In the /02.demo-content folder I offer for each page a .txt file with the shortcodes and dummy content added in. You can just paste that in the wordpress editor and then replace the dummy text to save a lot of time..
Note 2: You can find the complete description and parameter list of all shortcodes in the Shortcode Glossary.
Before we get started you should Disable the Admin Bar on top.
As of Wordpress version 3.1, you will see an Admin Bar at the top of your theme page.
First we need to set up a full width page as the Homepage.
Next, we will set up this "Homepage" page as "Front Page".
The blog should look like this now:
To set up a Contact page:
A distinctive design feature of the Solid Theme is the Page Header. If you preview the previously created contact page you will see that it doesn't have the full page header.
The page header is formed out of: the title + excerpt + page header image.
To add a page header image you have to:
Adding the excerpt is easy. If you don't add it it will not be shown. If the wordpress dashboard doesn't show the excerpt box go to Screen Options and check the appropriate checkbox.
Note:
Adding a page header image on each page is to much work so the theme has a clever system in which if a page doesn't have a header image selected it:
Selecting which are the Blog, News and Portfolio pages
The contact page with the Header iamge added
So when you create a new page / post you need to decide if you want it to have it's own page header or take on the one from it's parent or the blog, news and portfolio page.
To set up the About Us section:
How to set a parent for a page
Take a piece of paper and write down for each created page their name and coresponding page ID. The pageID can be found directly under the title. For you convinience the theme adds an extra column called ID where it lists each posts / pages ID. We need to know the ID's for the sidebar widget logic later on/ Some of the shortcodes also require you to know these page ID's!!
First, set up the overview Service page:
Then create each individual service page:
How the Title, Featured Image and Excerpt of Service pages is displayed on the service overview page
Note: If you don't see the Excerpt field on the page you need to go to Screen Options and check it's checkbox
Note: How to set a Featured Image
To set up the Portfolio you need to first set up a Portfolio overview page and then you can add portfolio items by adding new Projects posts.
Create the portfolio page:
Now let's add portfolio items but before we do that we must first add the categories the portfolio projects will be categories upon. The portfolio will be filtrable based on these categories.
Now we can add projects:
Projects feature image, excerpt and title usage on portfolio overview page
Set Up the blog page:
Then all you have to do to add blog entries is to create posts.
The slides included on the homepage slider are added using the Slides custom post.
The slider can be configured from the theme options panel.
To set up an default page just add a new page and select the desired Sidebar layout Settings and publish.
Create the menu:
To add footer widgets:
To add header widgets:
The sidebar is set up in the same way as the footer widget areas, with the exception that you have to take widget logic into account to decide on what page the widgets should show.
In ../02.demo-content/sidebar-widgets.txt you will find the list and widget logic for each widget the demo uses. There is a compelte section on widget logic below so I won't go into details here.
Solid WP comes with 25+ useful short-codes for layout and content formatting. These short-codes include basic layout columns, tabs, accordions, toggles, lists, information boxes etc. In order to use these short-codes, you would insert them inside the content editor of a post or page. Below are the default syntax and usage instructions for these short-codes:
Description:
Allow you to create different column formats.
Syntax:
create a section, clear the content in it: [section] create a 160px column, with a 20px right margin: [col160] create a 160px column, with no right margin: [col160 last] create a 220px column, with a 20px right margin: [col220] create a 220px column, with no right margin: [col220 last] create a 340px column, with a 20px right margin: [col340] create a 340px column, with no right margin: [col340 last] create a 460px column, with a 20px right margin: [col460] create a 460px column, with no right margin: [col460 last] create a 700px column, with a 20px right margin: [col700] create a 700px column, with no right margin: [col700 last] Use case: [section] [col160]...[/col160] [col220]...[/col220] [col220 last]...[/col220] [/section] [section] [col340]...[/col340] [col340 last] [section] [col160]...[/col160] [col160 last]...[/col160] [/section] [/col340] [/section] ----------------------- clearfix - generates a sub section to add columns [clearfix] [col460] ** col460 ** [/col460] [col220] ** col220 ** [/col220] [/clearfix] Note: Because of the wordpress shortcodes implementation you can’t use: [section] [section] [/section] [/section] So our best solution was to use [clearfix] like this : [section] [clearfix] [/clearfix] [/section]
Depending what you choose from Sidebar layout Settings when creating a page:
Now in this 700px or 940px wide area you can fit in any order, a number of 160, 220, 340, 460 and 700px columns keeping in mind that:
Description:
Inserts a horizontal rule
Syntax:
[hr]
Description:
Generates a break line. It is used for spacing purposes.
Syntax:
[br]
Description : highlights a text section
Use:
this is [highlight]an important[/highlight] message you needed to hear this is [highlight2]an important[/highlight2] message you needed to hear
Text Highlight preview
Description:
Styles an unordered list to have checks instead of bullets.
Syntax:
[checklist] <ul> <li>Item number One</li> <li>Item number Two</li> <li>Item number Three</li> </ul> [/checklist]
Checklist preview
Description:
Displays a blockquote.
Syntax:
[blockquote author="John Doe, Some Business"] Praesent nec aliquet elit. Nullam convallis placerat metus, sit amet ultrices nulla faucibus sit amet. Quisque dictum lorem sed sem haretra luctus. Donec sed posuere nisl. Aliquam eu vestibulum mauris.[/blockquote] [blockquote author="Some Business" align=left ] Praesent nec aliquet elit. Aliquam eu vestibulum mauris.[/blockquote] [blockquote author="Some Business" align=right ] Praesent nec aliquet elit. Aliquam eu vestibulum mauris.[/blockquote]
Arguments:
| Name | Optional / Required | Values | Description |
| author | optional | text string | ads an author mention in the bottom side of the quote |
| align | optional | left / right | Use it only if you want the blockquote to be left or right aligned. |
Blockquote preview
Name: code
Description:
Used when you want to display code on the page.
Syntax:
[code] .style { background:red; } [/code]
Blockquote preview
Description:
generates a dynamic google map
Syntax:
[map address="Bucharest, Romania" details="Here I live" ] [map lat=45.63885 long=25.60774 details="Development" popup=true ]
Arguments:
| Name | Optional / Required | Values | Description |
| zoom = 14 | required | 14 | represents the zoom in map |
| adress | required | null | the adress |
| lat | optional | 0 | represents the latitude coordinates |
| long | optional | 0 | represents the longitude coordinates |
| details | optional | null | the text from the popup bubble |
| marker | optional | true | the pinpoint from the map |
| popup | optional | false | if you want the bubble to load automatically or on click |
Description:
Adds a contact form, the e-mail address can be entered from admin panel
Syntax:
[form-contact]
Description:
should be added on main blog page, it will list the blog articles
Syntax:
[blog] [blog posts=2 ]
Arguments:
| Name | Optional / Required | Values | Description |
| posts | optional | numeric | the number of posts to show at once. It adds pagination automatically if the total number of posts is higher then the number of posts to be shown at once. |
Description:
Inserts the html used for search input used on blog sidebar
Syntax:
[blog-search]
Description:
Generates a portfolio overview page with 1 item per row and large item preview image (700x300)
Syntax:
[projects-detailed] [projects-detailed order=asc] [projects-detailed service='e-commerce'] [projects-detailed nav=true]
Arguments:
| Name | Optional / Required | Values | Description |
| service = 'web-design' | optional | - | show posts from the specified service (required) |
| items | optional | numeric | the number of items to be shown at once. It adds pagination automatically if total number |
| order | optional | asc / desc | sort the posts asc or desc |
| nav | optional | true / false | to show or not pagination controls |
Description:
Generates a portfolio page with 4 items per row, items have small image previews (220x120).
Aditionally it can be used to create the Selected work section on the homepage by adding some extra optional parameters
Syntax:
Create portofolio: [projects-columns] Create portfolio, order items ascending: [projects-columns order=asc] Create portfolio, only show item for a particular category: [projects-columns service='e-commerce'] Create portfolio, add pagination: [projects-columns nav=true] Create the selected work section, end it with a link: [projects-columns link=true title="view more work" url="http://www.page.com/projects/"] Show only one portofolio item, selection made based on projectID: [projects-columns id=45] Show four portfolio items: [projects-columns id="45,16,12,82"]
Arguments:
| Name | Optional / Required | Values | Description |
| items | optional | numeric, either 3 or a multiple of it | the number of items loaded |
| order | optional | asc/desc | sort the posts asc or desc |
| service | optional | show posts from the specified service | |
| id | optional | id / "id, id, id, id" | show only specified post or posts |
| nav | optional | false | is showing pagination controls |
| link | optional | the url | you can add a link back to the projects page. Used only to create Selected Work section from homepage. |
| title | optional | text string | specify the link title. Used only to create Selected Work section from homepage. |
| url | optional | # | specify the link url. Used only to create Selected Work section from homepage. |
Description:
generates a list with childs of a specified page loaded 3 in a row listed in multiple rows if necessary
Syntax:
[subpages page=21] [subpages page=21 items=5] [subpages page=21 order=desc] [subpages id=57] [subpages id="57,49"]
Arguments:
| Name | Optional / Required | Values | Description |
| page | required | numeric | the parent's pages ID |
| items | optional | -1 | the number child pages to show. Use the value -1 to show all. |
| order | optional | asc / desc | display order |
| id | optional | id / "id, id, id, id" | display pages with certain id's |
Description:
Generates a secondary navigation using the titles of the pages that are childern of the parent subpage you specify.
Syntax:
[links page=21] [links page=21 items=5] [links page=21 items=5 parent=true] [links page=21 order=desc]
Arguments:
| Name | Optional / Required | Values | Description |
| page | required | numeric | the ID of the parent page whos children should go in the list |
| items | optional | numeric | the number of children pages to show. Giving it -1 add all the childer pages |
| order | optional | asc | display order |
| parent | optional | true / false | include a parent link in the list as well or not |
Description:
generates a list with news and optional navigation
Syntax:
[news-overview] [news-overview items=4 nav=false ]
Arguments:
| Name | Optional / Required | Values | Description |
| items | optional | numeric | represents the number of items to show |
| nav | optional | true / false | if the navigation is visible or not |
| order | optional | asc / desc | the news items order by id |
Description:
generates a list with news and optional link to archives
Syntax:
[news-recent url="#" items=3]
Arguments:
| Name | Optional / Required | Values | Description |
| items | optional | numeric | represents the number of items to show |
| order | optinal | asc / desc | the news items order by id ASC/DESC |
| title | optional | text string | the title of the link to the news page |
| url | optional | valid url | the link to the news page |
Description:
lists all the services the portfolio items are categoriesed under and allows you to filter the portfolio
Syntax:
[projects-filter title="All work"]
Arguments:
| Name | Optional / Required | Values | Description |
| full | optional | specify the page that contains all the projects | |
| url | optional | specify an alternative url to the full page | |
| title | optional | specify alternative title to the full page |
Note: Usually the full attribute has the id from the option panel : "Portfolio Page", so the shortcode takes the id from theme options, in this case the title of the page and the url are automatically loaded from the page specified.
As an alternative solution you can add other page id like this :
[projects-filter full=56]
But of the page 56 has the title "Projects" you will want to provide other title in the filter so it would be more suggestive:
[projects-filter full=56 title="All Work" ]
Description:
shows a message box
Syntax:
[message type="error" ] An error has occurred [/message] [message type="success" ] Your settings has been saved [/message] [message type="info" ] Your settings has been saved [/message] [message type="notice" ] Another update is available [/message]
Arguments:
| Name | Optional / Required | Values | Description |
| type | required | success / error / info / notice | specifies the type of the message |
Messages preview
Description:
the tabs shortcode must be used along with tab shortcode
Syntax:
[tabs] … tabs … [/tabs]
Name: tab
Description:
represents a single tab on the tabs component
Syntax:
[tab title="Tab1"] Phasellus egestas accumsan laoreet. Phasellus tincidunt ipsum sit amet urna egestas rhoncus. Etiam quis lacus a nulla lacinia lobortis ut nec orci. Morbi in metus non tellus viverra convallis quis sit amet lacus. [/tab]
Arguments:
| Name | Optional / Required | Values | Description |
|---|---|---|---|
| title | required | text string | the title of the tab |
| current | optional | true / false | if the tab is open by default |
Full sample of tabs component:
[tabs] [tab title="Sample Tab1" current=true] Phasellus egestas accumsan laoreet. Phasellus tincidunt ipsum sit amet urna egestas rhoncus. Etiam quis lacus a nulla lacinia lobortis ut nec orci. Morbi in metus non tellus viverra convallis quis sit amet lacus. [/tab] [tab title="Sample Tab2"] Phasellus egestas accumsan laoreet. Phasellus tincidunt ipsum sit amet urna egestas rhoncus. Etiam quis lacus a nulla lacinia lobortis ut nec orci. Morbi in metus non tellus viverra convallis quis sit amet lacus. [/tab] [/tabs]
Not need at least a tab to be set current by defaul for the shortcode to work properly.
Tabs preview
Description:
the acordion shortcode must be used along with slide shortcode
Syntax:
[acordion] … slides … [/acordion]
Name: slide
Description:
represents a single slide on the acordion
Syntax:
[slide title="My Slide 1" current=true] Phasellus egestas accumsan laoreet. Phasellus tincidunt ipsum sit amet tellus viverra convallis quis sit amet lacus. [/slide]
Arguments:
| Name | Optional / Required | Values | Description |
| title | required | null | the title of the tab |
| current | optional | false | if the tab is open by default |
Full sample of tabs component:
[acordion] [slide title="My Slide 1" current=true] Phasellus egestas accumsan laoreet. Phasellus tincidunt ipsum sit amet tellus viverra convallis quis sit amet lacus. [/slide] [slide title="My Slide 2"] Phasellus egestas accumsan laoreet. Phasellus tincidunt ipsum sit amet tellus viverra convallis quis sit amet lacus. [/slide] [/acordion]
Accordeon preview
Description:
generates a PDF icon with a link
Syntax:
[brochure url="www.site.com/file.pdf" title="Download Brochure"]
Arguments:
| Name | Optional / Required | Values | Description |
| title | required | text string | the title of the link |
| url | required | an url | the link to the file |
Download Pdf preview
Description:
opens the file linked to inside the prettyphoto Lightbox
Syntax:
[lightbox group="gallery" url="http://www.site.com/large_image.jpg"] <img src="http://www.site.com/thumbnail_image.jpg" alt="" /> [/lightbox] [lightbox group="gallery" url="http://www.site.com/large_image.jpg"] some text [/lightbox] [lightbox group="gallery" url="http://www.site.com/large_image.jpg" src="http://www.site.com/thumbnail_image.jpg" ]
you can add images directly in the editor and just wrap the shortcode around them or the 3rd usage allows you to give the src of the image directly
Arguments:
| Name | Optional / Required | Values | Description |
| url | required | # | the location of the large image |
| group | optional | null | if you have more then 1 link that opens in the lightbox and you group them by giving them the same group name then when you open one of them in teh lightbox you can navigate through them directly in the lightbox. Ommit it completly to load only 1 image. |
| src | optional | null | the location of the thumbnail. Only useful in the 3rd usage example |
Description:
generates a item containing logo
Syntax:
[clientlogo href="http://www.site.com" src="http://www.sitename.com/clientlogo.gif"] [clientlogo src="http://site.com/index/clients/1.jpg" small margin=right]
Arguments:
| Name | Optional / Required | Values | Description |
| href | optional | # | if you specify the href the logo will have a link on it. Don't add it if you dont want a link. |
| src | required | image src | logo image source. Make sure it is smaller then 200x130px for best display |
| small | optional | - | specify weather the logo is small or large |
| margin | optional | left / right | specify if the logo will have a margin |
Client Logo preview
Where widget logic is inserted
Solid comes with a single sidebar, all the widgets will be added in this sidebar and displayed using Widget Logic plugin that extends the usual widget interface with an extra field.
The "widget logic" field allows you to add the condition under which a widet should be displayed.
This condition is evaluated as an boolean expression - if TRUE then widget is shown, else it is hidden.
For this templates purpose, the boolean expressions is constructed out of
Wordpress Conditional Tags and the boolean operator ||
Each of the conditional tags above accepts either
one - example: is_page(42)
multiple parameters - example: is_page(array(42, 43, 54, 65))
Example: is_archive() || is_single() || is_page(7) || is_search()
The above experssion will return TRUE if the displayed page is either an archive, search , post or a page with the pageID=7.
If you add this widget logic expression to any widget, that widget will only be shown on the blog page and complementary pages: search, month and category archives and individual blog post pages.
Example: ( is_post_type_archive('post') || is_single() || is_page(34) || is_archive() || is_search() ) && (!is_post_type('news')) && (!is_post_type('project'))
The widget will show only if either the blog page, archive, search or a custom post type AND it is NOT a news or project custom post type
Note 1: To use widget logic you will need to know the ID's to your pages. Earlier in the documentation I showed you how to read the ideas in case you didn't know how so it shouldn't be a problem.
Note 2: If it is too hard for you don't worry, I provide all the widget logic to set up the template like in the demo site and you can get in touch with me and I will help as well.
To skin or change some aspects of the theme you have 3 options:
To change the logo you can
2. Changing the logo through the Option Panel
Also, you have the option of using a plain text logo as well.
Replace favicon.ico with your own and you are done! You can use this online service to generate a favicon if needed: http://tools.dynamicdrive.com/favicon/
1. Edit background in style.css directly
Upload your new background in the /_layout/images folder.
Changing the background can be done by modifying the background property of body in style.css or overwriting it in a skin or in Extra CSS Code area of the Includes tab from the Options Panel.
Fonts and colors are changed in the css as well.
The current font used by cufon is Museo Sans 500. If you would like to change it with another then you should:
The theme comes with language localization support. If you are using Wordpress in your own language, you can use .po file to translate the messages into your own language. The .po file is located inside /_lang folder.
To use your own language there are two steps :
1. Change WordPress default language
In your WordPress installation directory open wp_config.php with a text editor, at line 72 you can find :
define (‘WPLANG’, ‘’);
You will need to change the parameter with a value using the format language_COUTRY like this :
define(‘WPLANG’, ‘fr_FR’);
After editing the line save the file and upload it in the same folder.
2. Create a .po file for your translation
Open the /_lang folder located in Solid theme directory and create a copy of default.po file, the .po file contains a list of strings located in the theme that could be replaced with your own.
Rename your copy of default.po file using the format specified above: fr_FR.po
To edit the po file you will need a software named PoEdit located here : http://www.poedit.net
After you installed PoEdit open the fr_FR.po file and translate the text, when you’re finished save the file, along with that a fr_FR.mo file will be created. You will need both files fr_FR.mo containing the actual translation and fr_FR.po for further changes that could occur.

A page is formed from 3 main <div>'s: #header, #content and #footer. These three div's inside another div named #wrap.
<div id="wrap"> <div id="header"> <!-- /// HEADER //////////////////////////////////////////// --> ... <!-- /////////////////////////////////////////////////////////// --> </div><!-- end #header --> <div id="content"> <!-- /// CONTENT /////////////////////////////////////////// --> ... <!-- ////////////////////////////////////////////////////////// --> </div><!-- end #content --> <div id="footer"> <!-- /// FOOTER /////////////////////////////////////////// --> ... <!-- ////////////////////////////////////////////////////////// --> </div><!-- end #footer --> </div><!-- end #wrap -->
The #wrap div is centered and sets the total width of the layout. The shadow that it drops is created with the CSS 3 box-shadow proprety. You can remove the shadow or change it's color if you cahnge teh background and it doesn't match with it:
( from style.css ... )
#wrap{ width:940px; padding:0 40px; margin:0 auto; background-color:#ffffff;
-moz-box-shadow:0 -10px 10px 0 #333; -webkit-box-shadow:0 -10px 10px 0 #333; box-shadow:0 -10px 10px 0 #333; }
A grid layout is used to create the layout inside the #header, #content and #footer div's
The template uses 3 main Css stylesheets:

The first two are
and they are always loaded.
The last stylesheet is style-nojs.css which contains styling to be used in case Javascript support is missing. The link to this stylesheet is inside an noscript tag, so this stylesheet is only loaded is javascript is not available. Also a message will be displayed to let the user know that only a part of the functionality is availabe without javascript enabled.
<noscript> <link href="http://bitpublimedia.ro/themeforest/Solid-wp/wp-content/themes/Solid-wp/style-nojs.css" rel="stylesheet" type="text/css" /> <div class="nojs-warning"><strong>JavaScript seems to be Disabled!</strong> Some of the website features are unavailable unless JavaScript is enabled.</div> </noscript>
One problem that always appears is that sometimes you need to write specific Css for Internet Explorer browsers to make them "play nice". The way this problm is tackled is that using Conditional Comments a class is applyed to the <html> element, according to the version of Internet Explorer the page is opened in:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!--[if lt IE 7 ]> <html class="ie6" xmlns="http://www.w3.org/1999/xhtml"> <![endif]--> <!--[if IE 7 ]> <html class="ie7" xmlns="http://www.w3.org/1999/xhtml"> <![endif]--> <!--[if IE 8 ]> <html class="ie8" xmlns="http://www.w3.org/1999/xhtml"> <![endif]--> <!--[if IE 9 ]> <html class="ie9" xmlns="http://www.w3.org/1999/xhtml"> <![endif]--> <!--[if (gt IE 9)|!(IE)]><!--> <html xmlns="http://www.w3.org/1999/xhtml"> <!--<![endif]--> <head>
So it you open the page with a version of Internet Explorer smaller or equal to 7 for example the <html> element will have have the class .ie7 applyed. Now when you want to write some css targeting IE7 you just start the Css Selector with .ie7 :
( from style.css ... )
#index-slideshow-pager{ width:200px; text-align:left; z-index:35; position:absolute; left:20px; bottom:12px; }
.ie7 #index-slideshow-pager{ bottom:15px; }
If you need to target Internet Explorer 7 then you start the css selector with .ie7, .ie8 for Internet Explorer 8 and .ie9 for Internet Explorer 9. And you write these css rules directly into style.css.
The template uses the jQuery javascript framework + jQuery plugins to add functionality to the website.
First jQuery files and plugin files are enqueued followed by these two custom Js files:

Solid comes with 20 php files, below we created a list to describe every file’s role.
| File | Role |
| archive.php | Default archive template for posts. |
| header.php | Default header template. |
| footer.php | Default footer template. |
| index.php | Default template for showing posts and pages. |
| page.php | Default page template. |
| single.php | Default single posts template. |
| single-project.php | Default single page template for projects. |
| comments.php | Default template to display comments on single posts. |
| search.php | Default search page |
| functions.php | Contains theme's functions and definitions. |
| taxonomy.php | Default page for projects listed by services |
| _layout/php/subscribe.php | the script that registers submmited e-mails in the “subscribe” field on footer |
| _layout/php/send.php | the server side script for contact form to send mail |
| _admin/functions-layout.php | Is handling the layout option in posts |
| _admin/functions-menus.php | Registering top menu |
| _admin/functions-options.php | Generating theme options |
| _admin/functions-type-news.php | It handles all the code for post type “news” |
| _admin/functions-setup.php | General admin setup options |
| _admin/functions-shortcodes.php | Registering shortcodes |
| _admin/functions-shortcodes-columns.php | Registering shortcodes for columns |
| _admin/functions-sidebars.php | Registering sidebars |
| _admin/functions-type-project.php | It handles all the code for post type “project” |
| _admin/functions-type-slide.php | It handles all the code for post type “slide” |
Solid WP is the result between a colaboration between us and Nicolae Gabriel ( Wordpress Development).
This template is possible in part also thanks to: