You have two options:
– At your website hosting, register a subdomain to your site’s domain.
Give the subdomain its own home directory, the default is to make it a sub directory of the domain but this can be overridden.
Get the letsencrypt certificate for the subdomain.
Make the directory of the sub domain password protected so that only you and authorised people can access this dev site.
Use the plugin DUPLICATOR to copy the parent website to the subdomain.
– Setup a localhost webserver.
Configure it to use the VirtualHost method on the same domain name as your website.
Add a line to your hosts file to map your domain name to the localhost server, you can switch between using the localhost vs hosted site by commenting out this line.
Understood on each of these replies. It would be much easier if I could work off of a duplicated theme that’s not “live”. This would then enable the client to see the updates in a non-live theme and approve them before adding them to the live.
Yeah, working on a live production site is far from ideal. When client approval is needed prior to launch, it’s not even an option. It takes out the localhost option as well, though I personally would still do as much development as possible on localhost before moving to a staging site for client review.
Using a subdomain for a staging site like Ross suggests is a great option. You could instead simply place a separate WP installation in a subfolder. Which you would do anyway for a subdomain, the difference is only what URL is used to get to the site.
Whichever way you go, you don’t need to clone a complete theme to modify it. Instead create a child theme that overrides what you need to override while letting the remainder of the parent theme do what it normally does.
https://developer.wordpress.org/themes/advanced-topics/child-themes/
The way I deal with client approvals is to develop on my localhost and have the client use a remote desktop program such as ANYDESK or TEAMVIEWER to view my screen.
– I get them to install the software.
– Get them on the phone, the voice connection is maintained through the session.
– Get the development website up on my browsers.
– Have the client connect and remote view the development website.
– Demonstrate the changes and features, also have them browse the site using their remote mouse + keyboard.
– All the time I am keeping notes on what they say and do, how they react etc. This gives me control and supervision of their exploration, I also know just what they did and saw.
– Close the remote session and wind up the phone conversation.
I have also done this on the live site when making minor changes such as a holiday announcement in some widget text, Also done user training on how to use their website admin and product management.