Every jkdevstudio theme runs on the same server baseline: PHP 8.1, WordPress 6.0, and enough memory and upload headroom for a demo import to finish without stopping halfway. Below are the exact numbers, what each one does, and what to say to your host when a value is too low.
These are not unusual numbers. WordPress publishes its own requirements, and the demo import is the only thing here that asks for more than an ordinary WordPress site does.
#The numbers
Most of these settings have two thresholds that matter: a minimum below which the theme's own checks warn you, and a recommended level where heavy operations run without you thinking about it again.
| Setting | Minimum | Recommended |
|---|---|---|
| PHP | 8.1 | the latest stable release |
| WordPress | 6.0 | the latest release |
memory_limit |
128M | 256M |
max_execution_time |
30 seconds | 60 seconds, or 0 for no limit |
max_input_vars |
1000 | 3000 |
upload_max_filesize |
32M | 64M |
post_max_size |
32M | 64M |
| Database | any MySQL or MariaDB version WordPress still supports | the latest supported version |
| HTTPS | a working certificate | a working certificate |
Minimum means no warnings, recommended means it stays out of your way.
At the minimum the theme works, with some risk that a heavy operation such as a demo import stops partway. The recommended column is where you stop thinking about these numbers. On the upload limits, higher is better: the demo import moves the whole media library through them.
You do not have to read any of this off your server by hand. Open the menu carrying your theme's name in the WordPress sidebar and go to System Info: every value above is measured there, and a limit below the minimum is marked with a warning. With the Pro plugin, Diagnostics grades the same checks as pass, warning or fail.
#What these settings do
These are standard PHP limits, so they behave the same way on any WordPress site you work on, and the PHP manual is the authority on each one.
memory_limitHow much memory one PHP request may use before the server stops it. A page load needs very little. Importing a demo, generating image sizes, or saving a large settings screen needs a lot more, all at once.
max_execution_timeHow many seconds a single request may run. Ordinary page loads finish in well under one second. A demo import runs far longer, because it copies posts, downloads media and rebuilds menus. That is why 30 seconds is where it starts getting risky.
max_input_varsHow many separate fields one form submission is allowed to carry. WordPress settings screens post hundreds of fields at once, and when the cap is hit PHP silently drops everything past it. The page reports that it saved, and half your settings are gone.
upload_max_filesizeandpost_max_sizeThe largest file you can upload, and the largest request body the server accepts. The effective ceiling is whichever of the two is smaller, so raising only one of them changes nothing.
#PHP extensions
The theme uses seven PHP extensions, and most hosts ship all of them: curl for talking to Hub and downloading updates and demos, mbstring for text that is not plain English, gd for images, zip for the archives updates and demos arrive in, fileinfo for working out an upload's real type, and dom with simplexml for reading the demo content file.
A missing extension only disables the one feature that needs it.
The theme keeps running. With zip missing you cannot import a demo, and everything else behaves normally, which is also why a missing extension is easy to misread as a broken feature.
#What is not a number
Four more things have to work, and none of them has a number you can compare. In practice these cause more failed setups than any limit in the table above.
- Outbound HTTPS requests, continuously
Your server has to reach the outside world, not just once at activation. The license re-verifies itself on a schedule, and when it cannot reach us it enters a 72-hour grace period and then stops being active. This is the usual cause behind "my site was fine and deactivated itself three days later": a firewall, a security plugin or a host that blocks outgoing connections. The site keeps loading normally the whole time, which is why nothing points at it.
- WP-Cron
The scheduler built into WordPress runs that re-verification and background work in our integrations. Some hosts disable it with
DISABLE_WP_CRONand replace it with a real server cron, which is fine, as long as something is actually callingwp-cron.php. If nothing is, the check never runs and never recovers on its own. The WordPress cron documentation explains both arrangements.- A writable uploads folder
Media and self-hosted fonts are stored under
wp-content/uploads. If the folder is read-only, uploads and font installs fail quietly rather than reporting an error.- The REST API
The theme settings panel is built on it. Security plugins that block the REST API for logged-out visitors are fine; ones that block it entirely leave you with an admin screen that never loads.
For disk space, the theme itself is about 4 MB and the Pro plugin about 10 MB with its dependencies. The demo content is what fills the disk, because it brings a full media library with it.
#When the numbers are fine and the import still fails
Read this before you spend an afternoon on limits that were never the problem.
A demo import makes a long run of outbound requests to fetch media, then writes a lot of files. Three things outside the PHP table stop it, and none of them shows up as a limit:
- A firewall or security plugin that blocks or throttles outgoing HTTP requests, so the media downloads time out one by one.
- A host that kills long requests at the web server rather than in PHP, which is why the import dies at a consistent point regardless of
max_execution_time. - Distance and packet loss between your server and ours, which turns a two-minute import into one that never finishes.
The symptom is the same in all three, so the diagnostics screen tests outbound connectivity directly rather than leaving you to guess.
#How to check your own server
Open the WordPress report
Go to ToolsSite HealthInfo and expand the Server section. This screen ships with WordPress, works on any site, and shows the PHP version and most of the limits above.
Compare it against the table
Anything at or above the recommended column needs no attention. Anything sitting between minimum and recommended should be raised before you import a demo.
Open the theme's System Info screen
The theme checks the same values, plus the extensions, the uploads folder, cron and outbound connectivity, and marks the ones that need attention instead of leaving you to compare numbers.
#Raising a limit
Your host sets almost everything on this page, so where you change it depends on how your hosting is arranged.
Most managed hosts expose PHP version, memory_limit and upload limits directly in their control panel, often under a name like "PHP settings" or "PHP selector". This is the first place to look, and changes there apply immediately.
On a server you control, set the values in php.ini and restart PHP.
memory_limit = 256M
max_execution_time = 120
max_input_vars = 3000
upload_max_filesize = 64M
post_max_size = 64M
WordPress can raise its own memory ceiling, though never above what PHP allows. This helps when the host limit is high and WordPress is the thing capping it.
define( 'WP_MEMORY_LIMIT', '256M' );
If none of those are available to you, send your host this, filling in the values you need:
Hello, could you please raise the following PHP settings for my site:
memory_limitto 256M,max_execution_timeto 120,max_input_varsto 3000, and bothupload_max_filesizeandpost_max_sizeto 64M. Could you also confirm that thecurl,mbstring,gd,zip,fileinfo,domandsimplexmlextensions are enabled, and that outbound HTTPS requests from the server are allowed. Thank you.
A host that will not raise a hard limit is a reason to change plan.
Working around a fixed PHP ceiling means giving up demo imports and large uploads permanently, and no setting inside WordPress can lift a limit the server imposes.
#Common questions
My site deactivated itself a few days after I activated it
Almost always a blocked outbound connection rather than anything about the license. The check runs on a schedule and enters a 72-hour grace period when it cannot reach us, so the site looks fine for days and then stops.
Confirm outbound HTTPS in System Info first, then look at a security plugin or a host firewall.
My host says memory is 256M, but the check still shows a lower value
Servers often run more than one PHP configuration: one for the web, one for the command line, and sometimes one per directory. The number that counts is the one PHP reports while serving your site, which is what ToolsSite HealthInfo shows.
Send your host that screen rather than the number from their panel.
Are the requirements different for the free and Pro versions?
No. The baseline above covers both, and Pro adds features without asking more of the server.
My site works fine, so can I ignore the warnings?
For everyday editing, usually yes. The flagged values are the ones that break during heavy one-off operations, such as a demo import, a bulk media upload or saving a settings screen with hundreds of fields.
They fail on the day you are setting the site up rather than during normal editing.
Is an old PHP version a problem if the site loads?
Yes, for two reasons. PHP versions stop receiving security fixes on a published schedule, so an unsupported one carries known vulnerabilities that will never be patched. And below 8.1, the theme uses language features that do not exist at all.
A check is still flagged after my host changed something
Copy the output from the System Info screen before assuming the change did not land. It carries the PHP version, every limit, the extension list and the WordPress version in one block, measured on the configuration that serves your site rather than the one in the hosting panel.
#Still stuck
Open a support ticket and say what you tried and where it stopped. Your product, your domain, a screenshot and the exact message you saw are usually enough to settle it in one reply.
Last updated