Author: Patrick Klein

Front-end web developer and Google certified SEO and SEA professional from the Netherlands working for a company that has been around for over 50 years with a specialty in PR and advertisement. In recent years we have also been working on getting beautiful websites up and running that are affordable for smaller companies.

Self-nominations for the Committee of 2020 are now open

It is that time of year for closure, and that means a lot of looking back and forward. Many people are already doing their personal reflections and reviews of 2019. We are moving into the future, and in 2020, something entirely new is going to happen for the project. For the first time, the committee is getting a shake-up! The Founding Committee will pass the torch to a new committee. ClassicPress election time is coming up.

Nominating yourself

The election is open to all people with trust level 2 on our forums, which means we have a lot of potential candidates. If you are trust level 2 and wish to nominate yourself for a committee position, you can do this at the 2020 committee candidates category in the forums. Every TL2 user who wishes to run for a place in the committee must create a new thread in this category and you may use your post to explain why you wish to run. There should be no campaigning outside of your post in this category.

The new committee will have 9 members. Of the original Founding Committee, only 6 have decided to run in this election. You read that right, current committee members don’t just automatically join the new committee. They must be elected just like everyone else. Even if all 6 of them get elected, there will be 3 new committee members joining them, so the 2020 committee cannot/will not be only Founding Committee members. What I am trying to say here is that everyone has a chance and it is really important to nominate yourself if you think you can make a difference in the project.

With great power…

If you want to nominate yourself for the election, do be aware that there are certain expectations and responsibilities that come with being a committee member. It is important that you are among the people most invested in making ClassicPress a success. This means that it is expected that you are active in at least one of the teams working on ClassicPress (e.g. Community, Development, Security, etc.). It is also expected that you participate in most of the committee meetings. (Of course, it is always possible to miss one. However, this should be the exception, not the rule.)

The deadline to nominate yourself is November 20th at 11:59pm UTC time. For more information you can refer to the original announcement.

A blog post about the ClassicPress blog, and how you can help!

This is a somewhat more meta article about the making of articles for the ClassicPress blog. A lot happens behind the scenes when we bring you a new article. I’ve had lots of contact with people about almost everything we post here. Who am i? Well you know who I am as my name is in the author card of this article. But what I do might not be widely known. I am Klein, editor of the ClassicPress Blog. I’ve worked at the blog under the supervision of marketing leads Ray Gulick and Michelle Coe for about 7 months and have really enjoyed doing so. I have worked with many amazing people in the community like John Alarcon and Alan Coggins to get an article out there each week. And I am also always looking for more people to work with!

The article making process

Most of the things I start writing never hit the blog. Not because they’re rejected, but because I throw them away as uninteresting or lacking. More easy are the collaborations with others. Often the tutorials we publish are republished from another blog. Here the only challenge is selecting things that are interesting and approaching the original writer about being featured. A little more challenging but still relatively easy are the Meet the Community pieces were we approach a member of the community and do a feature on them. Most often it is the community member themselves who does most of the work in writing about themselves. As the editor we only spellcheck and provide follow-up questions to expand the feature where necessary.

When all text is written or put together, it is send over to the marketing leads for a final review (Please don’t be to hard on this one 😉 ). If everything is okay we go into the publishing phase. Often we prepare an article at least a week before it goes live. In cases of republishing this is of course so that the original publisher gets all the initial traffic. But even in our own cases it’s good to have something ready so that we can take our time making corrections. Also we try to have something in the back so that if I miss a week for whatever reason, we don’t have an empty blog.

Then we finally hit the date of publishing, this goes pretty much automatically. There is a nifty system built into the site that automatically creates a topic on the forum for discussion of the article and like we all know, scheduling an article based on server time is really easy in ClassicPress. I personally always enjoy seeing a new article go up, and I do hope the community (that’s you) does as well.

Why are you writing this?

That is an interesting question, thank you for asking, me. The honest answer is that we could use some help. We want to make interesting content for everyone. With the tutorials and Meet the Community articles, I hope we’ve been doing that. But we could use some fresh insight. Do you have a tutorial you would love to share with the community? Interesting ClassicPress related news? An opinion piece you really want to share? or something else noteworthy? Please share it with me! You can reach me on the ClassicPress slack or through the forums.

Translating a ClassicPress plugin by azurecurve

Internationalization, or i18n as it’s often abbreviated, is an important part of many projects. That is why we want to highlight a course made by Ian Grieve of azurecurve. In this course Ian will take you through the process of translating plugins (and themes) step by step.

Ian introduces his new series as follows:

“I started using WordPress when I launched this blog back in 2011 and a couple of years later started writing plugins to add missing functionality. At the end of last year I switched over to ClassicPress, a hard-fork of WordPress.

As part of my transition to ClassicPress I created new versions of my plugins which added new functionality and improved security. I had already done some work to internationalize my plugins, but took the opportunity to improve this aspect as well.

Having done so, I thought that a series on how to internationalize and localize plugins might be a useful thing to write; while the series is targeted at plugins, as I am a plugin author, the principles are the same for themes.”

Where do I start?

If you want to get serious about creating plugins or themes for ClassicPress, i18n is not an afterthought, but should be regarded as a requirement. In this context, azurecurve’s new course should be an invaluable resource.

Excited to get started? You can find the series index here.

How to read the wp-config file, and what can I do with it?

If you use an installer you might have never actually looked into the wp-config file. Many people will tell you that it is probably one of the more important files in your ClassicPress installation to understand. This is because there are so many things that it can do to cause problems if used incorrectly. That is why I want to take some time to decipher it piece by piece for people who might be intimidated by all the code. This explanation follows the base wp-config-sample.php of a clean install. Things might be added, out of order or missing in your production site. Just because there is something in your file that is not discussed here does not mean it is bad, but try to make note of these. When you are having problems you can then look if removing these unknown lines is the solution.

The database settings

The first and, arguably, most important part of the wp-config file are the database settings. It’s important that all six of these are filled in correctly or you might run into trouble with your database.

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for ClassicPress */
define('DB_NAME', 'database_name_here');
/** MySQL database username */
define('DB_USER', 'username_here');
/** MySQL database password */
define('DB_PASSWORD', 'password_here');
/** MySQL hostname */
define('DB_HOST', 'localhost');
/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');
/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

What do they mean?

define('DB_NAME', 'database_name_here');: This is the name of your database. This is often automatically generated by your hosting. This is basically just what your database is called.
define('DB_USER', 'username_here');: This is the username of your database. This is different from your database name, even though a lot of hostings use the same name for both. The username is a distinct login to gain access to your database.
define('DB_PASSWORD', 'password_here');: This is the password of the username from above. To login, ClassicPress needs the password belonging to the username you’ve chosen.
define('DB_HOST', 'localhost');: This is the location of your database. For a lot of people this will be Localhost. But in the rare cases that a database is in a seperate location from the ClassicPress installation, the correct ip-adress can be filled in here.
define('DB_CHARSET', 'utf8');: This is the set of characters that the database uses. The standard value is utf8 and is in almost all cases the correct one. Utf8 supports all languages, and as such is the most ideal value.
define('DB_COLLATE', '');: This is the specific subset of charset that your database should use. Do not change this unless you’re absolutely certain.

The security keys

Underneath the database settings, you have the security keys. These consist out of four secret keys and four salts. In very simplified terms, these keys make it harder to break your security barriers. The four salts further complicate your defenses. While the keys are nessecary, the salts are not, but it’s still recommended to use them!

define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');

Your keys are not something you have to remember so make them as long and complicated as possible. You can also use one of the many online key generators.

The table prefix

The next important line of code is the table prefix. What this does is tell ClassicPress what the prefix of your table is. That is not very surprising, but what is the prefix of a table?

$table_prefix  = 'cp_';

In your database there will be several characters in front of the table name, usually cp_ or wp_. But you can change this during installation. Do not change this value after installation or you will break your database!

The debug settings

Under the table prefix is the debug setting. This decides if errors are logged or not. Set this to false to hide errors

define('WP_DEBUG', false);

If you set this to true you can also add extra lines to decide how exactly the errors are logged.
define( 'WP_DEBUG_DISPLAY', true );: Insert this line to enable display errors in text on the browser. Or change true to false to hide these errors.
define( 'WP_DEBUG_LOG', true );: Insert this line to enable an error_log file that you can access through FTP or your file manager. Or change true to false to block this feature. You can also change true into a path to add these logs to a specific file. For example: define( 'WP_DEBUG_LOG', '/error/cperrors.log' );

The directory settings

The final two settings can usually just be left alone. They are there to help ClassicPress find its settings.

/** Absolute path to the ClassicPress directory. */
if ( !defined('ABSPATH') )
	define('ABSPATH', dirname(__FILE__) . '/');
/** Sets up ClassicPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');

The first part will define the ABSPATH. But what is the ABSPATH? Simply said it is a map for ClassicPress to find its own main folder. An absolute path to the main folder. The second setting will then use this ABSPATH to tell ClassicPress where it can find wp-settings.php.

Extra settings

Of course this is not everything that wp-config.php can do. There are many more settings for all kinds of objectives. If you want to use some of these, simply copy and paste them between WP-DEBUG and ABSPATH. Some of the more interesting of these are:


Using define( 'WP_SITEURL', '' ); you can change the location of your ClassicPress installation without changing your home url. Simply use your main URL and then / with the name of the folder that you placed ClassicPress in. This overrides the option from settings in your CMS.

define( 'WP_HOME', '' ); can be used in combination with the above to change the home URL to keep it at root level or to change the homepage to a / something. It can also be used to force https or a main url when your domain has aliases. This also overrides the option from settings in your CMS. This makes sure that it can’t accidentally be changed by another user.

Moving directories

You can move several directories into seperate folders. These are uploads, themes, plugins and/or the entire wp-content folder. You can use the following settings for this, simply changing the relative URL:
Wp-content: define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/wp-content' );
Plugins: define( 'WP_PLUGIN_DIR', dirname(__FILE__) . '/wp-content/plugins' );
Uploads: define( 'UPLOADS', '/wp-content/uploads' );

But what about themes?

Themes are a little more complicated. The theme folder is hardcoded relative to the wp-content folder. But what you can do is register an extra themes folder using:
register_theme_directory( dirname( __FILE__ ) . '/themes' );


Using define( 'WP_CACHE', true ); you can turn ClassicPress’ advanced caching features on. You can also turn them off using define( 'WP_CACHE', false );.

Core updates

You can use the auto core update settings to decide how your ClassicPress installation should deal with updates. There are three settings:
define( 'WP_AUTO_UPDATE_CORE', false );: This turns off all automatic updates.
define( 'WP_AUTO_UPDATE_CORE', true );: This turns on all automatic updates.
define( 'WP_AUTO_UPDATE_CORE', 'minor' );: This turns on all minor automatic updates but will not do major updates automatically. This is the default.

PHP memory limit

There are a lot of errors that occur related to php memory limit. And while its better to change this in php.ini, not everyone has access to this. You can use wp-config to define a limit using: define( 'WP_MEMORY_LIMIT', '64M' ); This does not always work as some hosting providers block this.

Wrapping up

All in all, you can do a lot of stuff with this little file that most people ignore after installation. There is also a lot that I haven’t even mentioned yet! I hope that this article has given you a bit more insight if you were unfamiliar with using the config. Of course with this power comes a lot of responsibility and I advise against experimenting on a production site because you can also break a lot here. Please be careful and quoting the wp-config file: /* That's all, stop editing! Happy blogging. */. Well actually ‘start editing responsibly’. 😉

Meet the Community: Tim Hughes

ClassicPress Slack Handle: 1stepforward
ClassicPress Forum Handle: 1stepforward
Social media handles: I don’t really do social media. I find Facebook particularly annoying which to my mind is a platform for attention seekers. But, in general, I hate how social media is used to spread hate. Having said that, I do recognise that it can be put to good use and is still essential for many businesses. I recently created a Facebook shop that syncs products with WooCommerce.
Website: Yes, I must get around to doing one. Thanks for reminding me.
Where in the world are you located? England, UK

Tell us about yourself — occupation, hobbies, etc.


I’ve worked in IT for around 30 years (yes, I’m an old git) and started out in sys admin / tech support looking after Unix (and other) systems. I recall the first PC I used to have a massive 10MB hard drive and then, for a laugh, I went and doubled it by adding a second 10MB drive. Everyone said “Why have you done that? We’ll never need that much space!”. Then 2 or 3 years later, different company, different PC, I purchased a 1GB SCSI hard drive that cost £1000 ($1200, €1100). That was roughly 28 or 29 years ago and for that sort of money nowadays, I could probably start my own data centre!

I’ve always been a techie at heart, but not long after moving to another organisation, I found myself in the world of IT management. After a series of promotions, I became IT Manager, Head of IT and, from 2000 to 2009, IT Director. I was also a Chartered IT Professional and Member of the British Computer Society. You may think that this must have been the highlight of my career and in many ways it was but I really disliked dealing with all the politics and I also missed the technical stuff. So, by 2009, I decided I needed a change.

And that’s how I ended up doing what I do now, working from home as a freelance web developer. And I haven’t regretted it for a single second. Not only do I get to design and develop websites, but I also manage my own VPS, so my technical skills are still very much alive. I’ve also developed a couple of apps for iOS and Android and have become quite proficient in applications such as Photoshop, Illustrator, InDesign, Premiere and After Effects. SEO is another area of expertise and this actually takes up quite a bit of my time. I use SE Ranking to help, which I find invaluable. Maybe it’s not as polished as Moz or SEMrush but it’s a heck of a lot cheaper and does everything I need.


As for hobbies. Sadly, I don’t do much now. I used to be a very keen hillwalker and runner so I was pretty fit. I loved being in the hills and I’d be out at weekends in all kinds of weather. If I could go a whole day without seeing anyone else, then so much the better. But a few years back, I developed a chronic back condition which put an end to my days out in the hills.

I do also love listening to music and that’s what I do while I’m working. I’m a metalhead through and through and always have been. As a young kid, I’d be listening to the likes of Black Sabbath, Deep Purple, AC/DC, Motorhead and the Canadian rock band Rush. Although Rush aren’t what you’d call a metal band, they are still one of my all time favourite bands. Brilliant musicians. Now I listen to Iron Maiden, Slayer, Metallica and lots of other heavy, thrash and death metal bands as well as a bit of classical such as Handel, Beethoven and Mozart.

I love animals too and have been vegetarian for over 30 years. I have a pet rescue dog who is absolutely bonkers, is terrified of virtually everything and has OCD, but she is just so loveable. She gives great cuddles. Oh yes, I’ve been married for 23 years and have an 18 year old son. Nearly forgot that bit.

Other than the alarm clock, what gets you up in the morning?

Normally my natural body clock. Or the birds. And Recent Events in Britain.

I never set an alarm but I’m a morning person so I’m usually up early. I start working as soon as I’ve got my coffee sorted.

Why did you pick these photos of all photos?

Hill walking and music have always been a large part of my life away from work. I am actually in both pictures. From the peace and quiet of the hills on a sunny, hazy day, to a rainy, open air music festival. Two extremes. Both pictures show that we’re all tiny creatures in an endless universe and yet, when we all pull together, great things can happen.

What’s your dream job?

When I was hill walking, in the early pre-internet days, there was a telephone service you could ring to find out the weather forecast and conditions under foot for the hills in the English Lake District. In order to provide this service, a small team of “assessors” would take it in turns to trek up and down Helvellyn (one of England’s highest mountains) every day. I always thought that would be such a great job.

I was also good at cricket and dreamt of playing for England one day.

Meanwhile, back in the real world, I’d wanted to work in IT from a very early age so I guess I’m doing my “dream” job already.

How did you hear about ClassicPress, and what made you want to get involved?

Well, I’ll be honest. I’ve never been the world’s biggest fan of WordPress. I started developing websites using CodeIgniter and then PyroCMS as well as OpenCart for e-commerce sites. But one day, I got asked to take over an existing WP website and it came as a bit of a shock. As a developer, it seemed so restrictive compared to what I’d been used to. The concept that everything was a post seemed bizarre, as did filters and actions, but I’d already tried Joomla and Drupal and really didn’t like them either. But, with hindsight, this unexpected introduction to WordPress probably came just at the right time. Development of CodeIgniter had stopped (but has since been picked up by the British Columbia Institute of Technology) and as PyroCMS was itself based on CodeIgniter, that stopped too (although it has since been completely re-written based on Laravel). So, somewhat reluctantly, I started using WP for all of my new websites.

I won’t go into details here, but there were many things I disliked about WordPress, the community and the people behind it all. I had never accepted that WP was my CMS of choice and was always looking at other platforms. But the defining moment for me was, of course, Gutenberg. I gave the new editor a real good try and was quite convinced that I’d get used to it. I tested it while it was still in beta and continued to test it for weeks after its official launch. But my initial opinion of it never changed. I hated it. It seemed so unnatural, cumbersome and, to use the word I used earlier, very restrictive. Everything seemed to take a lot more effort, even writing simple text. I thought “I can’t push this onto my clients. They’ll hate it”. So I set up a test site and asked a few clients to check it out for a few weeks. Sure enough, they hated it too – for exactly the same reasons as I did. I was beginning to despair.

I think I first heard about ClassicPress on a well-known WordPress news site and I thought “Hmm. Interesting. Perhaps there is hope after all.”. I joined the forums in December last year but I mostly just sat on the fence and watched what was going on. I’ll freely admit to being quite reluctant to commit at first. I had 20 websites running WordPress at the time and also had plans to convert a further 15 or so that were running on other systems (e.g. OpenCart, PyroCMS, Magento). It seemed such a daunting prospect and yet I desperately wanted it to happen. I really did not see a future in WordPress.

But I was very impressed with what I saw on the forums. Everyone was enthusiastic and many had already migrated their sites to CP. So, this gave me the push I needed to stop prevaricating and to commit to it fully. I started to take more of an active part in the forums and, following discussions with James, it was agreed that I take on responsibility for developing a core SEO plugin.

I was already working well over 80 hours a week but I turned down a couple of jobs and let a couple of existing jobs go, just so that I could make a bit of time to work on it.

That might sound a little harsh or foolish even but the way I see it is that ClassicPress is my future and WordPress is my past and what I’m doing now is investing in my future.

How does ClassicPress fit into your overall plans for the future?

Well, in addition to working on the SEO plugin, I have also contributed to the revamp of the ClassicPress website. Very soon, I hope to be helping out with core development too. In addition, I have contacted Installatron and MainWP asking them to add support for CP and have also created a feature request on cPanel.

This cPanel feature request is very important in my view. You can read the details here:

In a nutshell, I have requested that cPanel creates a plugin for ClassicPress that is identical in all other respects to their existing WordPress plugin. I would like to take this opportunity to urge community members, colleagues, friends, family, anyone in fact, to vote for this. I accept that cPanel have not won many friends lately but it’s important to view this as a vote for ClassicPress, not for cPanel, and it should give ClassicPress massive exposure. cPanel is just the mechanism and still a very powerful one. How good would this look?

Without a doubt, ClassicPress will become my CMS of choice. We have a great opportunity here to create a silk purse out of a sow’s ear. The community is great and doesn’t suffer from the same issues that exist, erm, elsewhere. It’s also got a great core team behind it unlike the “other system”. It’s not going to be easy and I think everyone realises that. Let’s face it, launching any new CMS is always going to be difficult.

But I am confident that there are some good, dedicated people behind it and that gives me great hope.

It will take time and it’d be great if we could get some major backers because I do truly believe that CP is going to be way better than WP ever has been or ever will be.

Done fast; done cheap; done well: what’s your choice(s) and why?

I have always worked methodically and believe in doing the best I can at whatever I do. So I am not necessarily the fastest of workers.

My philosophy is that if something is worth doing, it must be “done well” every time. But at a price that is fair to everyone. And as quickly as possible without compromising quality.

Meet the Community: Ray Gulick

hiking buddies

ClassicPress Slack Handle: raygulick
ClassicPress Forum Handle: raygulick
Twitter handle: @evoweb
Where in the world are you located? New Mexico, USA

Tell us about yourself — occupation, hobbies, etc.

I’ve been an independent web designer / developer full-time since 1999 when I moved to New Mexico. Before that, I worked as a marketing communications director for a couple of corporations; before that, was an art director; and before that, a teacher and wrestling coach.

Most of my free time is spent in outdoor activities; hiking almost daily with my two dogs, but also mountain biking or road cycling a couple times a week. I volunteer with a local therapeutic horsemanship organization, mostly caring for the horses, but occasionally working with riders.

Things I used to do: I was an avid whitewater boater (open canoe and raft), but several years of drought in New Mexico made it difficult to keep my skills sharp, and I’m now dangerous in water above class III. I’ve also had to stop calling myself a painter, as it’s been a couple of years since I’ve picked up a brush.

Two young grandkids who live on the east coast keep me entertained and concerned about the future. I’m more interested in politics than I’d like, but at this point it seems irresponsible to ignore it.

I love good coffee and single malt — on weekends, possibly together in the same cup. I do NOT like piña coladas, but I will walk in the rain, if it comes to that.

Other than the alarm clock, what gets you up in the morning?

I usually make a to-do list for the next day before going to bed, so I wake up thinking about what I want to do right after I finish my first cup of coffee (priorities). Apart from that, my dogs have definite ideas about when it’s time to get up and get breakfast.

What’s your dream job?

I think it would be cool to be a ferris wheel operator. While waiting to break into that, I love what I’m doing. I named my company Evolution Web Development (Evo for short) because I knew we’d have to keep evolving to provide web-based services, and in the 20 years since, that’s certainly been the case. There’s always something to learn, and I love that. It’s also one of the things I love about ClassicPress Forums and Slack: I can listen in and learn about stuff of which I had little or no idea.

How did you hear about ClassicPress, and what made you want to get involved?

I’d been hoping for a CMS-oriented WordPress fork for a couple of years, ever since it became clear around 2016 that WordPress was not, after all, going to embrace its potential as a professional CMS (2012-2014, it seemed like they would). So I was already on the lookout for a fork that looked like it would succeed, particularly after it was announced the block editor would be integrated into core. A big part of what I sell is ease-of-use and efficiency for adding and maintaining site content, and the block editor seriously undermines that approach.

I checked out the CP Forums and Slack, and the people involved all seemed pretty open, welcoming, and ready to share. I made an argument that ClassicPress should focus on the business and professional website market (and there was an argument/discussion; not everyone agreed we should define our primary market), and I was invited to join the Founding Committee shortly after. The main points of my side of that discussion are available in a blog post.

How does ClassicPress fit into your overall plans for the future?

Little by little, I’m converting all the sites I manage (more than 50) to ClassicPress, and since January 2019, I’m only building new sites on ClassicPress. So, I’m ‘all-in,’ staking my livelihood on its success.

Done fast; done cheap; done well: what’s your choice(s) and why?

I try to avoid work in which ‘cheap’ is the primary consideration. I work best with clients who know what they want (or will listen to recommendations), and who understand that the time and expertise required to get what they want deserves reasonable and fair compensation. I could go off here about the commodification of design and development, but that’s a rant, so let’s not. Done fast (if needed) and done well (always) is what I try to deliver to clients.

Meet the Community: Simone Fioravanti

ClassicPress Forum Handle: Simone
ClassicPress Club: Simone
Social media handles: @cris.vardamak
Website: (main Job) and
Where in the world are you located? Italy

Tell us about yourself — occupation, hobbies, etc.

I work in advertising, doing whatever must be done… from creating layouts or retouching photos to using the screwdriver to try to fix digital printers or inserters! I like programming, even if I’m not necessarily a good coder. I use this passion in my job for creating websites, applications for internal use and automatizing my workflows.

At the beginning of 2012 I began sharing my life with Cris, a bernese mountain dog. Now you can understand my profile picture and facebook username ;-). Soon I realized that I didn’t know enough about dogs. One year later I was “back to school” to become a dog trainer, just out of interest. But now it’s my second job and my favourite hobby!

How many dogs do you train? and any stand-out experiences?

This year I worked with about 30 dogs. About ¾ puppies and ¼ biting dogs. Really I train the dog’s families more than I train the dogs and I very much like to work on the relation with the owners. I like to say: “Ehi, your dog is a beautiful person!”. I’ve just finished with two biting amstaff. The owner was working on his garden and there were two big mountains of ground that should be laid down but those dogs were too happy jumping across them. Together we completely re-designed the garden to be the dogs’ garden!

Other than the alarm clock, what gets you up in the morning?

Fear… fear of my alarm clock ringing!

What’s your dream job?

Really I have two jobs and love both. But if I could be back to my nineteenth, a couple of years working on a cruise boat!

How did you hear about ClassicPress, and what made you want to get involved?

I don’t remember how I found out about ClassicPress, but one hour later my two main sites were running it. In one week 15 customers were moved to CP. I like fresh projects, and I very much like the philosophy behind CP and the directions v2 is taking, so I wanted to be able to give my two cents on this beautiful project.

What do you like most about the direction v2 is taking?

Business-focused (not as a tag-line or slogan, but as a direction) best describes what I like most.
Less bloated and more documented code, “core plugins” to get a lighter platform, no support for paleolithic versions of PHP.

WP is following the “up and running in 5 minute” market, but I think that these kind of websites — not for personal blogging but for business — are mostly unuseful, better open a facebook page and work with google places.

How does ClassicPress fit into your overall plans for the future?

ClassicPress is the CMS of my legacy sites and also for all my new projects. My idea is that it could bring faster and more robust sites. It’s not something scheduled, but I’d like to dust down my plan of making plugins.

How is your experience with the community? Do you feel heard?

These days it is difficult to see real discussion without conflicts, even talking about the correct length of a leash likely will lead to a religious war. But this community is great in positive confrontation. I feel that everyone is heard!

So many different backgrounds, experiences and needs – correctly “packed” together will lead to something stunning!

Done fast; done cheap; done well: what’s your choice(s) and why?

Done well. Done fast. I’ve a lot of droplets on my desktop to speed things up and leave me half an hour for a good beer! If cheap is necessary I prefer to strip down less necessary features rather than quality.

Creating a Child Theme

When performing changes to your theme, like changing up the template; adding functionality; or adding CSS, it is often advised to use a child theme. But how do you make a child theme? What even is a child theme? Why do you need this? All questions that people new to this level of ClassicPress will come up against. This tutorial will do its best to answer these questions in the easiest way possible.

What is a child theme?

Simply said, a child theme is a theme that is dependent on another theme. The theme that the child theme is dependent on is called the parent theme. The child theme will pull its code from the parent theme to fill in any gaps. This will make it appear as if you’re using the parent theme.

So why use a child theme?

In the child theme you can overwrite templates, functions and CSS from the parent theme without actually changing the parent theme. This means that when you update the parent theme, these changes will remain in effect. So, you can safely make all the template, styling and functionality changes to a theme that you want, without having updates overwrite your efforts.

How do I make a child theme?

By now you should be convinced that if you are going to make changes to a theme, you should get a child theme. So let’s make one step by step.

What do I need?

  • Access to your ClassicPress files, either through FTP or a file manager.
  • A parent theme of your choosing. For this tutorial we will use Twenty Seventeen
  • A code/text editor.

The Tutorial

Step 1: Open your ClassicPress installation in FTP or a file manager and Navigate to wp-content > themes.

themes folder

Step 2: Create a new folder and access it. The name does not really matter, but for future reference, it is easiest to name this folder <themename>-child. So in this case it will be twentyseventeen-child.

child theme folder

Step 3: Create a file named style.css in the new folder and open it in an editor.


Step 4: Next we are going to create some theme details. Like below:

  • Theme Name => Your chosen theme name
  • Theme URL => Your URL
  • Description => A short description of the child theme
  • Author => Your name
  • Author URL => Your domain
  • Template => The folder name of your parent theme, in this case twentyseventeen, but this is different for each theme.
  • Text-domain => The folder name of your child theme, in this case twentyseventeen-child.

Note: Only Theme Name and Template are required, the rest is optional.

Now add these details to the style.css you created like below and save the file.

Theme Name: Twenty Seventeen Child
Theme URL:
Description: Example of a Child theme for Twenty Seventeen
Author: klein
Author URL:
Template: twentyseventeen
Text Domain: twentyseventeen-child
/* You can add custom CSS below */

style header

Step 5:
Create a file named functions.php in the child theme folder and open it in an editor.


Step 6: Add the following code to the functions.php file and save it.

//Enqueue parent theme css
add_action( ‘wp_enqueue_scripts’, ‘enqueue_parent_theme_css’ );
function enqueue_parent_theme_css() {
wp_enqueue_style( ‘parent-style’, get_template_directory_uri().’/style.css’ );
//Add custom functions below

enqueue parent style

Step 7:
Go to your ClassicPress admin area and go to themes. When here, ‘Activate‘ the child theme.

Step 8:
Your child theme is ready for use!

How do I start making changes?

Now that your child theme is ready for use, you obviously want to start making changes. As mentioned before, there are three main uses for your child theme: change styling, add functionality and edit templates. Doing these three things is easy!

Changing styles

To overwrite your theme’s CSS, simply go to the style.css file you made during the creation of this child theme. Add the CSS changes you want to this file below the details and save them!

Note: The child theme styles are rendered after the parent, so anything you add here will overwrite the specifications made in the parent’s style.css file.

Adding functionality

Often when you are trying to add functionality through snippets, you will be instructed to add them to your theme’s functions.php. It works the same way with a child theme. You can add these snippets or write your own in the functions.php file you made during the creation of this child theme. Just add them below the enqueue_parent_theme_css function.

Editing templates

To edit a template file you must first find the file in your parent theme. For example single.php, sidebar.php, footer.php, etc. When you have found the file you want to edit, make a copy and upload this copy to your child theme. Be careful to keep the URL structure intact! For example, if you found a file in the folder template-parts, make sure it’s also placed in a folder named template-parts in your child theme.

Some plugins also gives you the option to edit their templates in your child theme! An example of this is WooCommerce. To do this, you go to your plugin folder and look in the templates folder. Copy the file you want to edit. When in your child theme, make a folder with the same name as the plugin’s folder (This folder takes the place of templates in your URL structure) and add the copy of the file you wish to edit to this folder. Also make sure the URL structure stays intact from here, just like a theme file.

Note: Because the plugin folder in your child theme takes the place of templates, you do not need to add a templates folder in these plugin folders.

Meet the Community: Pete Thomas

ClassicPress Forum Handle: MrLucky
CP:,,, ;
WP:, ;
Where in the world are you located? South East England, UK

Tell us about yourself — occupation, hobbies, etc.

Musician and composer (semi retired). I was originally a pop/rock session and touring musician (saxophone) then became a composer of media and TV music.

Hobby: websites which are involved with fundraising for special needs music education (raised almost £1,000,000 to date)

I am also a supporter of Southampton FC.

What are some of your fundraising campaigns for?

As the sites that raise the money (the store site and the forum) are aimed at musicians it just seems natural to choose music related charities. And music education (and/or therapy) for special needs children and adults is something I’m interested in, there is so much to do with assistive technology that is advancing all the time.

You can find more information at:

Other than the alarm clock, what gets you up in the morning?

My wife. Ugandan coffee.

What’s your dream job?

What I’ve been doing I suppose.

What led to your love for the saxophone, is it the only instrument you play?

What lead me to the saxophone? I think that was hearing some avant garde jazz on the radio (Ornette Coleman) when I was 18 and realising there was more to jazz than the boring trad my parents listened to.

And no, it is not the only instrument I play. I also play a bit of guitar, bass, keyboards and percussion. Plus programming. It’s very useful these days to be a multi-instrumentalist and being able to produce, for media companies, something that has real instruments, not just programmed synth and sample.

Where can people find your music?

A lot of my music, especially educational and sales is on my main site, a lot more (the production music) can be found on

How did you hear about ClassicPress, and what made you want to get involved?

I heard about it from the Wordpress Feedback forum. I was finding Gutenberg difficult to deal with.

How does ClassicPress fit into your overall plans for the future?

Gutenberg is too restricting. I want the combination of simple text editor but with the ability to use coding when I want to. I cannot see any longevity to the Wordpress classic editor plugin. My only reservations are that my main site ( which is quite large and involves sales will need a lot of testing (plugins etc.) before I’m confident enough to migrate it to CP.

Done fast; done cheap; done well: what’s your choice(s) and why?

Each depending on context.

Meet the Community: Zulfikar Gani

ClassicPress Slack Handle: zulfgani
ClassicPress Forum Handle: zulfgani
Social media handles: @classicdesignr on Twitter, Zulfikar Gani on FB & zulfgani on GitHub.
Website: (My ClassicPress home currently under construction)
Where in the world are you located? Leicester, UK ~ In the heart of England

Tell us about yourself — occupation, hobbies, etc.

I’m a bit of a jack of all trades so online I go by “A code wrangler” especially themes and plugins for ClassicPress having emigrated from WordPress last year. I’d love to build a full fledged web Agency based on ClassicPress and therefore working towards this as the end goal.

Offline I’m in the process of setting up a meat (beef) production unit where I’ll be producing halal beef bacon, sausages and gourmet burgers. As a former builder I’m doing most of the unit build work myself and as a coder will be responsible for the business website from A-Z.

What made you want to get into the meat industry and why specifically set up a halal production unit?

I was born in Tanzania, East Africa so grew up with cows and meat around me. I kinda lost touch with that when we moved to the UK. That though changed when I met an American lad and we became good friends. He and his friend had set up a butcher shop and from them I got to learn the American cuts, rubs and way of cooking steaks.

With that knowledge talking to fellow Muslims about steaks and especially bacon I quickly realized there was a huge gap in the market. So after a few more chats a couple of us decided that there’s a market out there, so why not fill it? And so the adventure began.

Other than the alarm clock, what gets you up in the morning?

It has to be thought of finally being able to enjoy a good ol’ full English breakfast 😉 So I get up early, do some code then rush off to get the production unit job done.

What’s your dream job?

I have 2 as mentioned above ~ currently working on getting them both off the ground 🙂

How did you hear about ClassicPress, and what made you want to get involved?

Ah, ClassicPress! We met by chance and it was code love at first site.

As a passionate themer I was in the habit of keeping up with WP development longing to find an opportunity to get back in. It was during one of the reads when I spotted a comment mentioning ClassicPress “without Gutenberg” and knew what I had to do, “get back to what I love doing”.

I’ve since released my first ClassicPress theme called GeneriK and I’m currently working on another 2 plus a couple of forked and improved/unGutenBerged (is that a word?) plugins.

What made you create GeneriK?

I had originally created a theme for WP with some basic Gutenberg support while it was still a plugin. I then realized that Gutenberg was going to be a nightmare to develop for let alone support so I shelved the project and also quit the WordPress Theme Review Team.

When ClassicPress presented me with the opportunity to get coding again I revived the theme, renamed it and stripped out all of the GB support ~ going back to the basics so to speak.

I’m very pleased with the end results but have more ideas to take the theme even further. I named the theme GeneriK (Generic) on purpose as it is very extensible via action hooks and filters. Child themes and addon plugins can really take it to the next level by adding, removing and hooking in to these actions to make it unique while the base theme still remains generic.

But the proof is in the pudding and only the end users of the theme can be the judges ~ I would naturally be biased.

How does ClassicPress fit into your overall plans for the future?

ClassicPress has rekindled my love of code and an ambition to run a web agency which I intend to capitalize on to the fullest extent as I grow.

Done fast; done cheap; done well: what’s your choice(s) and why?

Lets see, 
Done fast leads to silly mistakes and goes against the saying “never rush a good _____”
Done cheap is overrated. Wait, that’s underrat(ing)ed right?

For me it has to be “Done Well” as a well done pat on the back is more gratifying than a few “quick bucks”.