Skip to content
themeforge
EN
Start free
Menu
  1. Home
  2. Sources
  3. HTML
HTML → WordPress

Turn an HTML site into a WordPress theme your client can edit

Mark the texts, images and lists your client should change. ThemeForge builds a classic WordPress theme where each of them is a field in the admin, and you can change the design later without touching their content.

See your WordPress admin before you pay · $20/month · cancel any time · 14-day refund

Your site index.html
menu.html
contacts.html
theme-options.html
css/ style.css
assets/ 12 images
WordPress theme index.php
page-menu.php
page-contacts.php
Site settings
css/ main.css
fields: 53 · lists: 3
Short answer

Yes. Give ThemeForge the published URL of your site or upload its folder. Add attributes such as fld-text and fld-loop to the parts your client should edit, and you get a WordPress theme with those parts as admin fields. Pages, styles, images and fonts come along. Content that JavaScript draws in the browser does not, because it is not in the HTML.

Example: Warm Corner

The drinks list from a café site, before and after it becomes a theme

Point at a line of markup to see the field it becomes.

menu.html source
<body wp-fields-group="Menu">  <h2 fld-text="Title">Menu</h2>  <p fld-area="Lead">Espresso runs on our…</p>  <div class="cards" fld-loop="Drinks">    <article class="card">      <img fld-image="Image" src="assets/icon-latte.png">      <h3 fld-text="Name">Latte</h3>      <p fld-text="Description">Double espresso…</p>      <span fld-text="Price">$4.20</span>    </article>    …three more cards, marked the same way  </div>
wp-admin › Pages › Menu admin
Title Menu
Lead Espresso runs on our “Warm” blend — Brazil and Ethiopia, medium roast.
Drinks
1 Latte Double espresso and milk, no syrup. $4.20
2 Cappuccino Dense foam, 250 ml. $3.90
3 Filter of the day A different bean each day — ask which one. $3.40
4 Oolong tea Brewed in a pot, enough for two. $3.60
+ Add row

Warm Corner, our demo site: 3 pages and a settings page → 4 field groups, 53 fields, 3 lists. The client adds, removes and reorders rows; the design does not change.

Before you start

What goes in, what comes out

You bring

  • Static HTML pages: index.html and the rest
  • CSS, images and fonts on relative paths
  • A published URL, or the folder from your disk
  • Sites written by Claude, Cursor or ChatGPT

You get

  • A classic PHP theme as a ZIP
  • A template for every page
  • Admin fields for everything you marked
  • Site settings from theme-options.html
  • Menus and working forms

Good fit

  • Company and service sites
  • Landing pages and portfolios
  • Blogs, catalogs, small shops
  • Sites you hand over to a client

Not a fit

  • Apps with logins or their own database
  • React or Next.js projects as they are
  • Pages built for Elementor or Gutenberg
How to convert

Three steps from a folder of HTML to a site your client runs

  1. Step 1

    Mark up the fields

    Open each HTML file and add an attribute to every element the client should change; the attribute reference lists them by task. The free markup check tells you what is missing before you build.

  2. Step 2

    Preview the admin

    Point your project at the published URL. About 20 seconds later a full WordPress admin opens in your browser tab, with the pages, the lists and the site settings filled from your HTML.

  3. Step 3

    Install and hand over

    Subscribe, download the theme and install it like any other. Later, one button in wp-admin pulls a new build; a failed update rolls back by itself. For a site added as a folder, keep its source on the site to use that button.

Compared with doing it by hand

The work a developer would otherwise do

Rebuilding by handThemeForge
TemplatesCut every page into PHP filesGenerated from your pages
Admin fieldsRegister each field and wire it into the templateOne attribute per field, in the HTML
Your current textRetype it into the admin“Load data” fills the fields from your pages
The next redesignRepeat most of the aboveRebuild the theme; fields and content stay
FormsInstall and configure a forms pluginYour forms work, every entry is saved in the admin
Limits

Know these before you start

Content drawn by JavaScript

If a list or text only appears after a script runs, it is not in the HTML and cannot become a field. Put it into the markup first.

Every row of a list needs its attributes

The first row defines the fields. Mark the other rows the same way, so all of them are imported into the admin.

A renamed field starts empty

Fields are matched by name. Rename one in the markup and the rebuilt theme shows it empty, so keep names stable once the client has filled them.

For AI assistants

Built with an AI assistant? Let it do the markup

Give Claude, Cursor or ChatGPT one link. It reads where the attributes go, marks up the site and checks its own work against the same rules the builder uses.

  • themeforge.pro/ai · plain-text rules for assistants
  • Markup check · free, no account, before you build
  • Markup guide · the same rules, written for people
# Tell your assistant
Read https://themeforge.pro/ai and mark up
this site so the client can edit the menu.

# Check the result before building
curl -X POST https://themeforge.pro/api/validate-markup \
  -H "Content-Type: application/json" \
  -d '{"pages":[{"name":"index.html","html":"…"}]}'
$20 / month
  1. Sign up
  2. Preview your admin
  3. Subscribe
  4. Download and update
Start free: preview your admin

Cancel any time · 14-day refund · your site keeps working after you cancel

Questions

HTML to WordPress, answered

I change the HTML often. Will the client’s edits survive?

Yes, as long as field names stay the same. The text your client typed lives in WordPress; each new build of the HTML replaces only templates and styles.

Which pages of my site become templates?

The home page always, plus every page you list in the project. Each page becomes a template, and the client can create more pages from any of them; each new page gets its own copy of the fields.

What is theme-options.html for?

Put the things that repeat on every page there: phone, address, social links, footer text. They become one settings screen in the admin instead of a field on every page.

Do my existing texts move into the admin?

Yes. After installing, “Load data” fills the fields with the texts and images from your HTML, so the client starts from the current site, not from empty boxes.

Is it free to try?

The markup check is free without an account; the admin preview needs a free account. Downloading and updating the theme is part of the $20 subscription, with a 14-day refund.

Ready when you are

See your HTML site as a WordPress admin before you pay.