Once a WordPress site is up and running, the next step is making it do more without making it fragile: custom content types, your own code, several languages, a network of sites, a shop, and a maintenance routine that keeps it all fast and safe. This guide is for site owners and developers who already know the dashboard and want to go further.
Installing WordPress, first settings, themes, essential plugins, SEO basics, WP-CLI and common errors are covered in Mastering WordPress: A Step-by-Step Guide for Beginners and Experts. This guide picks up where that one ends.
Put custom code in a small plugin or a must-use plugin, not in a parent theme or WordPress core, so updates never wipe it. Use custom post types and taxonomies to structure content, a translation plugin for multilingual sites, and Multisite only when the sites genuinely share users and code. On Domain India shared hosting, use WP Super Cache or W3 Total Cache for page caching (the web server is Apache, not LiteSpeed), and test every big change on a staging copy first.
1. Work safely: staging, backups and a child theme
Before you customise anything:
- Test on staging. Clone the site to a staging copy, try the change there, then repeat it on the live site. WP Toolkit on cPanel and Softaculous can both clone an installation; see WP Toolkit compared with Softaculous.
- Take a backup you control. Domain India backs up shared hosting accounts for you (weekly with JetBackup 5 on cPanel and DirectAdmin, every night on Webuzo), but take your own backup just before a big change, with a plugin such as UpdraftPlus, and keep a copy off the server.
- Use a child theme for template or style changes to a classic theme, so a theme update doesn't overwrite them. With a block theme, most changes are made in the Site Editor and saved in the database.
2. Custom post types and taxonomies
WordPress ships with posts and pages. For portfolios, team members, courses or property listings, a custom post type keeps that content separate with its own fields and archive. A custom taxonomy classifies it, like categories do for posts.
You can create them without code using a plugin such as Custom Post Type UI, or register them in code. Code keeps them working even if a plugin is removed:
<?php
// wp-content/mu-plugins/site-content-types.php
add_action( 'init', function () {
register_post_type( 'portfolio', [
'label' => 'Portfolio',
'public' => true,
'has_archive' => true,
'show_in_rest' => true, // needed for the block editor
'supports' => [ 'title', 'editor', 'thumbnail', 'excerpt' ],
'rewrite' => [ 'slug' => 'portfolio' ],
] );
register_taxonomy( 'project_type', 'portfolio', [
'label' => 'Project types',
'hierarchical' => true,
'show_in_rest' => true,
] );
} );After adding a post type, open Settings › Permalinks and click Save Changes once, so WordPress rebuilds its URL rules. Otherwise the new pages return 404.
3. Adding custom code the right way
| Where the code goes | Survives updates | Good for |
|---|---|---|
| A must-use plugin in wp-content/mu-plugins | Yes | Site-wide code that must always run and can't be switched off by accident |
| Your own small plugin | Yes | Features you may want to turn on and off |
| A code-snippets plugin | Yes | Short snippets managed from the dashboard |
| functions.php of a child theme | Yes | Code that belongs to the design |
| functions.php of a parent theme, or core files | No | Never: the next update removes it |
Two common snippets, for a must-use plugin:
<?php
// Hide the admin bar for everyone who can't edit posts
add_filter( 'show_admin_bar', function ( $show ) {
return current_user_can( 'edit_posts' ) ? $show : false;
} );
// Send subscribers to the home page after login
add_filter( 'login_redirect', function ( $redirect_to, $request, $user ) {
if ( $user instanceof WP_User && in_array( 'subscriber', (array) $user->roles, true ) ) {
return home_url( '/' );
}
return $redirect_to;
}, 10, 3 );A PHP syntax error in a must-use plugin takes the whole site down, so test on staging. If it happens, rename the file over FTP or the File Manager.
4. Multilingual sites
WordPress has no built-in way to publish the same content in several languages. The established plugins:
Whichever you choose, give each language its own URL (for example /hi/ for Hindi), so search engines can index every version, and let the plugin add the hreflang tags that tell Google which page is which language.
5. WordPress Multisite
Multisite runs several sites from one WordPress installation, sharing users, plugins and themes. It suits a school with department sites or an agency running many similar sites. It is harder to back up, migrate and troubleshoot, so for two or three unrelated sites, separate installations are usually simpler.
- Back up the site.Multisite changes the database and
.htaccess. - Allow the network.Add
define( 'WP_ALLOW_MULTISITE', true );towp-config.phpabove the line that says "That's all, stop editing!". - Deactivate all plugins,then open Tools › Network Setup.
- Choose subdirectories or subdomains.Subdirectories (
example.com/site1) work on any hosting. Subdomains (site1.example.com) need a wildcard subdomain on the server; on shared hosting, ask support before you choose this. - Copy the code WordPress showsinto
wp-config.phpand.htaccess, log in again and reactivate plugins network-wide or per site.
Every site in the network shares one hosting account's resources, so a busy network can reach the account's limits sooner than a single site. See understanding hosting resource limits.
6. WooCommerce for power users
Setting up a store, products, payments and shipping is covered step by step in Setting up your online store with WooCommerce. Once it is running:
- Payments. For Indian customers, use a gateway with UPI and cards; Razorpay, PayU and Cashfree all offer WooCommerce plugins. PayPal is useful for international buyers.
- Performance. Cart, checkout and "My account" pages are never page-cached, so keep plugins lean and product images compressed.
- Security. Hosting includes free SSL, so the whole store runs over HTTPS. Keep WooCommerce and its extensions updated promptly.
7. Performance on Domain India hosting
Domain India shared hosting (cPanel, DirectAdmin and Webuzo) runs the Apache web server. LiteSpeed Cache's page cache needs a LiteSpeed server, so use WP Super Cache or W3 Total Cache instead, and run only one page-caching plugin at a time. Redis is not available on shared plans.
Beyond caching: compress images (Smush, Imagify or EWWW), clean up revisions and transients with WP-Optimize, remove plugins you don't use, and put a CDN such as Cloudflare in front of the site if many visitors are far from the server. Optimizing WordPress and My website is slow go step by step.
If you replace WP-Cron with a real cron job, note that on our cPanel and DirectAdmin servers the shortest effective interval is 4 minutes; every 15 minutes is plenty for most sites.
8. Maintenance routine
- Weekly:apply plugin and theme updates on staging, then live. Check that forms, login and checkout still work.
- Monthly:remove unused plugins and themes, review admin users, and check your off-site backup restores.
- Every few months:run PageSpeed Insights, check Google Search Console for errors, and fix broken links.
Keep automatic updates on for minor WordPress releases, which carry security fixes. For errors, start with troubleshooting a blank WordPress page and the WordPress hardening guide.
9. Where Domain India fits
cPanel hosting includes Softaculous and WP Toolkit, free SSL and weekly JetBackup backups, with PHP versions you choose per account. For a multisite network or a busy store, a plan with more websites and resources gives you headroom. Live prices, excluding 18% GST:
- 50 GB NVMe SSD Storage
- 100 GB Monthly Bandwidth
- 5 Websites
- 50 Email Accounts
- 100 GB NVMe SSD Storage
- Unmetered Bandwidth
- 25 Websites
- 150 Email Accounts
Where should I put custom code in WordPress?
In a must-use plugin in wp-content/mu-plugins, your own small plugin, a code-snippets plugin, or a child theme's functions.php. Never edit a parent theme or WordPress core files, because the next update removes your changes.
Why do my custom post type pages show 404?
WordPress hasn't rebuilt its URL rules. Open Settings, Permalinks and click Save Changes once after adding or changing a post type.
Should I use WordPress Multisite for my sites?
Only if the sites share users, plugins and themes, such as department sites of one organisation. For a few unrelated sites, separate installations are easier to back up, move and troubleshoot.
Can I use subdomain Multisite on shared hosting?
Subdomain Multisite needs a wildcard subdomain on the server. Subdirectory Multisite works on any hosting. On Domain India shared hosting, ask support before choosing subdomains.
Which caching plugin should I use on Domain India shared hosting?
WP Super Cache or W3 Total Cache. Domain India shared hosting runs Apache, not LiteSpeed, so LiteSpeed Cache cannot do page caching there. Use only one page-caching plugin at a time.
How do I make a WordPress site multilingual?
Use a translation plugin such as Polylang, WPML or TranslatePress, give each language its own URL such as /hi/, and let the plugin add hreflang tags for search engines.
Ready to take your site further? Read Optimizing WordPress, compare WordPress hosting, or open a ticket if something on your hosting account needs our help.
cPanel hosting with Softaculous, WP Toolkit, free SSL and weekly JetBackup backups.
See cPanel plans