How you make a premium WordPress theme ZIP

Below is a clear, practical checklist of what to include in a WordPress theme ZIP, plus what actually makes it feel “great” and on-brand with Studio1Live / Templates.


1️⃣ Minimum files WordPress REQUIRES (must-have)

Your ZIP should unzip to one folder (the theme name).

studio1live-templates-theme/
├── style.css
├── index.php
├── functions.php
└── screenshot.png

Without these → WordPress will reject the theme.


2️⃣ Core theme files (professional-grade)

Add these to avoid “junk theme” vibes:

studio1live-templates-theme/
├── header.php
├── footer.php
├── page.php
├── single.php
├── archive.php
├── search.php
├── 404.php
├── sidebar.php

These allow:

  • Pages
  • Blog posts
  • Categories
  • Tags
  • Search
  • Clean fallbacks

3️⃣ Match your Templates site look (MOST IMPORTANT)

You already have a beautiful storefront CSS. Reuse it.

Add this folder:

assets/
├── css/
│   └── templates-style.css
├── js/
│   └── templates-ui.js
└── img/

Then in functions.php enqueue it:

function s1l_assets() {
  wp_enqueue_style(
    's1l-templates',
    get_theme_file_uri('/assets/css/templates-style.css'),
    [],
    '1.0'
  );
}
add_action('wp_enqueue_scripts', 's1l_assets');

👉 You can copy your existing /templates/assets/css/style.css, trim admin-only parts, and drop it here.

That’s how you visually unify both worlds.


4️⃣ Theme metadata (SELLS your theme)

style.css header (VERY important)

This is what customers see.

/*
Theme Name: Studio1Live Templates Theme
Theme URI: https://studio1live.com/templates
Author: Studio1Live
Author URI: https://studio1live.com
Description: Dark, modern WordPress theme designed to match the Studio1Live Templates storefront. Built for product blogs, release notes, and tutorials.
Version: 1.0.0
License: Commercial
Text Domain: studio1live
*/

This instantly makes it feel premium.


5️⃣ Screenshot that converts

screenshot.png

  • Size: 1200 × 900
  • Dark UI
  • Hero section + cards
  • “Templates” vibe
  • Logo visible

This is HUGE for perceived quality.


6️⃣ Add optional “wow” features (easy wins)

These take your theme from “nice” → “sellable”.

A) Custom Homepage Template

Create:

page-home.php

With:

  • Hero (matching Templates site)
  • “Latest Releases”
  • “Featured Tools”
  • “From the Blog”

WordPress will let users select it as homepage.


B) Theme Options (simple, not bloated)

Add:

inc/
└── theme-options.php

Let user set:

  • Accent color
  • Logo
  • Header button URL (“View Templates”)
  • Dark/light toggle (optional)

C) Gutenberg-friendly blocks

Make sure:

  • No page builder dependency
  • Looks great in default editor
  • Wide/full-width support enabled
add_theme_support('align-wide');
add_theme_support('editor-styles');

7️⃣ SEO + performance ready (buyers care)

In functions.php:

add_theme_support('title-tag');
add_theme_support('post-thumbnails');
add_theme_support('html5', ['search-form','gallery','caption']);

Don’t bundle SEO plugins — let users choose.


8️⃣ Documentation (THIS boosts sales)

Include a README.txt in the ZIP:

README.txt

Contents:

  • How to install theme
  • How to set homepage
  • How to match Templates colors
  • Recommended plugins (optional)
  • Support link

People WILL pay more when docs exist.


9️⃣ What NOT to include (important)

❌ No:

  • node_modules
  • .git
  • cPanel files
  • API keys
  • Your templates admin system
  • Hardcoded URLs to localhost

Keep it clean.


🔥 Suggested ZIP structure (FINAL)

studio1live-templates-theme.zip
└── studio1live-templates-theme/
    ├── style.css
    ├── index.php
    ├── functions.php
    ├── header.php
    ├── footer.php
    ├── page.php
    ├── single.php
    ├── archive.php
    ├── search.php
    ├── 404.php
    ├── screenshot.png
    ├── README.txt
    ├── page-home.php
    ├── assets/
    │   ├── css/templates-style.css
    │   ├── js/templates-ui.js
    │   └── img/
    └── inc/
        └── theme-options.php

Pricing guidance (since you’re selling)

  • Basic theme: $29
  • Theme + demo content: $39
  • Theme + child theme + docs: $49

Studio1Live Templates WordPress Theme (copy/paste files)

This is a complete, sellable WordPress theme scaffold that matches your /templates storefront vibe (dark hero, cards, neon-blue/purple accents). It includes:

  • Homepage template (hero + featured + latest posts)
  • Blog templates (single, archive, search, 404)
  • Customizer options (logo, accent color, header button, footer links)
  • Product Cards block pattern (for your Templates + Downloads links)
  • Sports Articles setup (category + embed helpers + shortcode)
  • README instructions

Create a folder named:

studio1live-templates-theme/

Then add the files exactly as shown below.


1) style.css

/*
Theme Name: Studio1Live Templates Theme
Theme URI: https://studio1live.com/templates
Author: Studio1Live
Author URI: https://studio1live.com
Description: Dark, modern WordPress theme designed to match the Studio1Live Templates storefront. Built for product blogs, release notes, sports articles, and tutorials.
Version: 1.0.0
License: Commercial
Text Domain: studio1live
*/

:root{
  --bg:#070b14;
  --panel:#0c1326;
  --card:#0f1a33;
  --text:#eaf0ff;
  --muted:rgba(234,240,255,.75);
  --line:rgba(234,240,255,.12);
  --brand:#4f8cff;
  --brand2:#7c5cff;
  --radius:18px;
  --shadow: 0 14px 40px rgba(0,0,0,.35);
  --max: 1160px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  background: radial-gradient(1200px 700px at 15% -10%, rgba(79,140,255,.22), transparent 60%),
              radial-gradient(900px 600px at 85% -20%, rgba(124,92,255,.18), transparent 55%),
              linear-gradient(180deg, #050815 0%, #070b14 60%, #050815 100%);
  color: var(--text);
  line-height:1.6;
  overflow-x:hidden;
}

a{color:inherit;text-decoration:none}
a:hover{opacity:.95}
img{max-width:100%;display:block}

/* WordPress content defaults */
.wp-site-blocks, .site{min-height:100%}
.entry-content{max-width:var(--max);margin:0 auto;padding:0 16px}
.entry-content p{color:var(--muted)}
.entry-content h1,.entry-content h2,.entry-content h3{color:var(--text);line-height:1.2}

/* Buttons */
.s1l-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:10px 14px;border-radius:14px;font-weight:800;letter-spacing:.2px;
  border:1px solid rgba(255,255,255,.14);
  background: linear-gradient(135deg, var(--brand), var(--brand2));
  color:#071026;box-shadow: 0 10px 18px rgba(0,0,0,.22);
}
.s1l-btn:hover{transform:translateY(-1px)}
.s1l-btn:active{transform:none}
.s1l-btn.ghost{background:rgba(255,255,255,.06);color:var(--text);box-shadow:none}

/* Layout helpers */
.s1l-wrap{max-width:var(--max);margin:0 auto;padding:0 16px}
.s1l-section{padding:42px 0}

/* Header */
.s1l-topbar{
  margin:18px auto 0;max-width:var(--max);
  padding:14px 16px;border-radius:24px;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.10);
  box-shadow: 0 10px 26px rgba(0,0,0,.25);
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
}
.s1l-brand{display:flex;gap:12px;align-items:center}
.s1l-logo{
  width:42px;height:42px;border-radius:16px;
  background:linear-gradient(135deg,var(--brand),var(--brand2));
  display:grid;place-items:center;font-weight:900;color:#071026;
}
.s1l-brand-title{font-weight:900;letter-spacing:.2px}
.s1l-nav{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.s1l-nav a{color:rgba(234,240,255,.85);padding:8px 10px;border-radius:12px;border:1px solid transparent}
.s1l-nav a:hover{border-color:rgba(79,140,255,.35);background:rgba(255,255,255,.04)}

/* Hero */
.s1l-hero{
  padding:28px 0 18px;
}
.s1l-hero-inner{
  border-radius:24px;padding:26px 22px;
  background:
    linear-gradient(135deg, rgba(79,140,255,.20), rgba(124,92,255,.14)),
    radial-gradient(900px 400px at 10% 0%, rgba(255,255,255,.08), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.12);
  box-shadow:var(--shadow);
  position:relative;overflow:hidden;
}
.s1l-hero h1{margin:0;font-size:clamp(24px,3vw,38px);line-height:1.05}
.s1l-hero p{margin:8px 0 0;color:var(--muted);max-width:72ch}
.s1l-hero-actions{margin-top:14px;display:flex;gap:10px;flex-wrap:wrap}

/* Grid cards */
.s1l-grid{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:720px){.s1l-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1040px){.s1l-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

.s1l-card{
  border-radius:18px;overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  background:
    radial-gradient(700px 300px at 20% 0%, rgba(79,140,255,.12), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
  box-shadow: 0 10px 26px rgba(0,0,0,.25);
}
.s1l-card-body{padding:14px 14px 16px}
.s1l-card h3{margin:0;font-size:18px;line-height:1.2}
.s1l-card .meta{margin-top:8px;color:var(--muted);font-size:14px;min-height:42px}
.s1l-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.s1l-tag{font-size:12px;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:rgba(234,240,255,.88)}
.s1l-actions{margin-top:12px;display:flex;gap:10px;flex-wrap:wrap}

/* Post cards */
.s1l-post-card .thumb{height:160px;background:rgba(0,0,0,.25)}
.s1l-post-card .thumb img{width:100%;height:160px;object-fit:cover}

/* Footer */
.s1l-footer{border-top:1px solid rgba(255,255,255,.08);padding:26px 0;color:rgba(234,240,255,.7)}
.s1l-footer a{color:rgba(234,240,255,.8);border-bottom:1px solid transparent}
.s1l-footer a:hover{border-bottom-color:rgba(79,140,255,.45)}

/* Gutenberg blocks spacing */
.wp-block{max-width:var(--max)}
.wp-block-image{margin:0}

/* Forms */
input, textarea, select{
  padding:11px 12px;border-radius:14px;border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.06);color:var(--text);outline:none;
}
input:focus, textarea:focus, select:focus{border-color:rgba(79,140,255,.55);box-shadow:0 0 0 4px rgba(79,140,255,.18)}

/* Accessibility */
@media(prefers-reduced-motion:reduce){.s1l-btn:hover{transform:none}}

2) functions.php

<?php
/**
 * Studio1Live Templates Theme
 */

if (!defined('ABSPATH')) exit;

function s1l_theme_setup(){
  add_theme_support('title-tag');
  add_theme_support('post-thumbnails');
  add_theme_support('html5', ['search-form','gallery','caption','style','script']);
  add_theme_support('align-wide');
  add_theme_support('editor-styles');

  register_nav_menus([
    'primary' => __('Primary Menu', 'studio1live'),
    'footer'  => __('Footer Menu', 'studio1live'),
  ]);
}
add_action('after_setup_theme', 's1l_theme_setup');

function s1l_assets(){
  wp_enqueue_style('s1l-style', get_stylesheet_uri(), [], '1.0.0');
  wp_enqueue_script('s1l-ui', get_theme_file_uri('/assets/js/templates-ui.js'), [], '1.0.0', true);
}
add_action('wp_enqueue_scripts', 's1l_assets');

/**
 * Customizer options (branding + header button)
 */
function s1l_customize_register($wp_customize){
  $wp_customize->add_section('s1l_brand', [
    'title' => 'Studio1Live Branding',
    'priority' => 30,
  ]);

  $wp_customize->add_setting('s1l_accent', [
    'default' => '#4f8cff',
    'transport' => 'refresh',
  ]);
  $wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 's1l_accent_ctrl', [
    'label' => 'Accent Color',
    'section' => 's1l_brand',
    'settings' => 's1l_accent',
  ]));

  $wp_customize->add_setting('s1l_header_btn_text', ['default' => 'View Templates']);
  $wp_customize->add_control('s1l_header_btn_text_ctrl', [
    'label' => 'Header Button Text',
    'section' => 's1l_brand',
    'settings' => 's1l_header_btn_text',
    'type' => 'text'
  ]);

  $wp_customize->add_setting('s1l_header_btn_url', ['default' => '/templates/']);
  $wp_customize->add_control('s1l_header_btn_url_ctrl', [
    'label' => 'Header Button URL',
    'section' => 's1l_brand',
    'settings' => 's1l_header_btn_url',
    'type' => 'text'
  ]);

  $wp_customize->add_setting('s1l_footer_note', ['default' => 'Build. Ship. Own your assets. — Studio1Live']);
  $wp_customize->add_control('s1l_footer_note_ctrl', [
    'label' => 'Footer Note',
    'section' => 's1l_brand',
    'settings' => 's1l_footer_note',
    'type' => 'text'
  ]);
}
add_action('customize_register', 's1l_customize_register');

/**
 * Apply accent color to CSS variables
 */
function s1l_inline_css(){
  $accent = get_theme_mod('s1l_accent', '#4f8cff');
  $css = ":root{--brand: {$accent};}";
  wp_add_inline_style('s1l-style', $css);
}
add_action('wp_enqueue_scripts', 's1l_inline_css', 20);

/**
 * Shortcodes (for your sports articles + embeds)
 */

// [s1l_button text="Buy" url="https://..."]
function s1l_button_sc($atts){
  $a = shortcode_atts(['text'=>'Open','url'=>'#','type'=>''], $atts);
  $cls = 's1l-btn' . ($a['type']==='ghost' ? ' ghost' : '');
  $url = esc_url($a['url']);
  $txt = esc_html($a['text']);
  return "<a class=\"{$cls}\" href=\"{$url}\" target=\"_blank\" rel=\"noopener\">{$txt}</a>";
}
add_shortcode('s1l_button', 's1l_button_sc');

// [s1l_embed url="https://www.youtube.com/watch?v=..."]
function s1l_embed_sc($atts){
  $a = shortcode_atts(['url'=>''], $atts);
  if (!$a['url']) return '';
  $html = wp_oembed_get($a['url']);
  if ($html) return "<div class=\"s1l-card\" style=\"padding:14px\">{$html}</div>";
  return '<a href="'.esc_url($a['url']).'" target="_blank" rel="noopener">'.esc_html($a['url']).'</a>';
}
add_shortcode('s1l_embed', 's1l_embed_sc');

/**
 * Block Pattern: Product Cards (your known links)
 */
function s1l_register_patterns(){
  if (!function_exists('register_block_pattern')) return;

  register_block_pattern('studio1live/product-cards', [
    'title' => 'Studio1Live Product Cards',
    'categories' => ['buttons','featured'],
    'content' => "<!-- wp:group {\"layout\":{\"type\":\"constrained\"}} -->
<div class=\"wp-block-group\"><!-- wp:heading {\"level\":2} -->
<h2>Featured Tools & Templates</h2>
<!-- /wp:heading -->

<!-- wp:columns -->
<div class=\"wp-block-columns\"><!-- wp:column -->
<div class=\"wp-block-column\"><!-- wp:paragraph -->
<p><strong>Templates Storefront</strong><br/>Your live templates site.</p>
<!-- /wp:paragraph -->
<!-- wp:shortcode -->[s1l_button text=\"Open Templates\" url=\"/templates/\"]<!-- /wp:shortcode --></div>
<!-- /wp:column -->

<!-- wp:column -->
<div class=\"wp-block-column\"><!-- wp:paragraph -->
<p><strong>Fix Your Own Credit Downloads</strong><br/>Your EDD product library.</p>
<!-- /wp:paragraph -->
<!-- wp:shortcode -->[s1l_button text=\"Open Downloads\" url=\"https://fixyourowncredit.studio1live.com/downloads\"]<!-- /wp:shortcode --></div>
<!-- /wp:column -->

<!-- wp:column -->
<div class=\"wp-block-column\"><!-- wp:paragraph -->
<p><strong>LinkStorm Demo</strong><br/>Tag extractor demo site.</p>
<!-- /wp:paragraph -->
<!-- wp:shortcode -->[s1l_button text=\"Open LinkStorm\" url=\"https://studio1live.com/linkstorm/\" type=\"ghost\"]<!-- /wp:shortcode --></div>
<!-- /wp:column --></div>
<!-- /wp:columns -->
</div>
<!-- /wp:group -->"
  ]);
}
add_action('init', 's1l_register_patterns');

3) header.php

<!doctype html>
<html <?php language_attributes(); ?>>
<head>
  <meta charset="<?php bloginfo('charset'); ?>">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
<?php wp_body_open(); ?>

<header class="s1l-wrap">
  <div class="s1l-topbar">
    <div class="s1l-brand">
      <div class="s1l-logo">
        <?php
          // show custom logo if set
          if (function_exists('the_custom_logo') && has_custom_logo()) {
            the_custom_logo();
          } else {
            echo 'S1L';
          }
        ?>
      </div>
      <div>
        <div class="s1l-brand-title"><?php bloginfo('name'); ?></div>
        <div style="color:rgba(234,240,255,.70);font-size:12px;letter-spacing:.2px;">
          <?php bloginfo('description'); ?>
        </div>
      </div>
    </div>

    <nav class="s1l-nav">
      <?php
        wp_nav_menu([
          'theme_location' => 'primary',
          'container' => false,
          'fallback_cb' => false,
          'items_wrap' => '%3$s',
          'depth' => 1
        ]);
      ?>
      <?php
        $btn_text = get_theme_mod('s1l_header_btn_text', 'View Templates');
        $btn_url  = get_theme_mod('s1l_header_btn_url', '/templates/');
      ?>
      <a class="s1l-btn" href="<?php echo esc_url($btn_url); ?>"><?php echo esc_html($btn_text); ?></a>
    </nav>
  </div>
</header>

4) footer.php

<footer class="s1l-footer">
  <div class="s1l-wrap" style="display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;">
    <div>
      <div style="font-weight:900;letter-spacing:.2px;">Studio1Live</div>
      <div style="color:rgba(234,240,255,.70);font-size:13px;">
        <?php echo esc_html(get_theme_mod('s1l_footer_note', 'Build. Ship. Own your assets. — Studio1Live')); ?>
      </div>
    </div>

    <div style="display:flex;gap:14px;flex-wrap:wrap;">
      <?php
        wp_nav_menu([
          'theme_location' => 'footer',
          'container' => false,
          'fallback_cb' => false,
          'items_wrap' => '%3$s',
          'depth' => 1
        ]);
      ?>
      <a href="/templates/">Templates</a>
      <a href="https://fixyourowncredit.studio1live.com/downloads">Downloads</a>
      <a href="https://studio1live.com/picks">Picks</a>
    </div>
  </div>
</footer>

<?php wp_footer(); ?>
</body>
</html>

5) index.php

<?php get_header(); ?>

<main class="s1l-wrap">
  <section class="s1l-hero">
    <div class="s1l-hero-inner">
      <h1><?php echo esc_html(get_bloginfo('name')); ?> Blog</h1>
      <p>
        Drops, updates, sports takes, and build notes — styled to match your Templates storefront.
      </p>
      <div class="s1l-hero-actions">
        <a class="s1l-btn" href="/templates/">Open Templates</a>
        <a class="s1l-btn ghost" href="https://fixyourowncredit.studio1live.com/downloads">Open Downloads</a>
      </div>
    </div>
  </section>

  <section class="s1l-section">
    <h2 style="margin:0 0 12px;">Latest Posts</h2>

    <div class="s1l-grid">
      <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
        <article class="s1l-card s1l-post-card">
          <div class="thumb">
            <?php if (has_post_thumbnail()) { the_post_thumbnail('large'); } ?>
          </div>
          <div class="s1l-card-body">
            <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
            <div class="meta"><?php echo esc_html(get_the_date()); ?> • <?php echo esc_html(get_the_author()); ?></div>
            <div class="meta"><?php echo esc_html(wp_trim_words(get_the_excerpt(), 22)); ?></div>
            <div class="s1l-actions">
              <a class="s1l-btn" href="<?php the_permalink(); ?>">Read</a>
              <a class="s1l-btn ghost" href="<?php echo esc_url(get_site_url(null, '/')); ?>">Home</a>
            </div>
          </div>
        </article>
      <?php endwhile; else: ?>
        <div class="s1l-card"><div class="s1l-card-body">No posts yet.</div></div>
      <?php endif; ?>
    </div>

    <div style="margin-top:18px;">
      <?php the_posts_pagination(); ?>
    </div>
  </section>
</main>

<?php get_footer(); ?>

6) page.php

<?php get_header(); ?>
<main class="s1l-wrap s1l-section">
  <article class="s1l-card" style="padding:18px;">
    <h1 style="margin-top:0;"><?php the_title(); ?></h1>
    <div class="entry-content">
      <?php while (have_posts()) : the_post(); the_content(); endwhile; ?>
    </div>
  </article>
</main>
<?php get_footer(); ?>

7) single.php

<?php get_header(); ?>
<main class="s1l-wrap s1l-section">
  <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <article class="s1l-card" style="padding:18px;">
      <h1 style="margin-top:0;"><?php the_title(); ?></h1>
      <div style="color:rgba(234,240,255,.72);font-size:13px;margin-bottom:12px;">
        <?php echo esc_html(get_the_date()); ?> • <?php echo esc_html(get_the_author()); ?>
      </div>

      <?php if (has_post_thumbnail()) : ?>
        <div style="border-radius:18px;overflow:hidden;margin-bottom:14px;">
          <?php the_post_thumbnail('large'); ?>
        </div>
      <?php endif; ?>

      <div class="entry-content">
        <?php the_content(); ?>
      </div>

      <div style="margin-top:14px;display:flex;gap:10px;flex-wrap:wrap;">
        <a class="s1l-btn ghost" href="/templates/blog/">Back to Blog</a>
        <a class="s1l-btn" href="/templates/">Templates</a>
      </div>
    </article>

    <div style="margin-top:14px;">
      <?php comments_template(); ?>
    </div>

  <?php endwhile; endif; ?>
</main>
<?php get_footer(); ?>

8) archive.php

<?php get_header(); ?>
<main class="s1l-wrap s1l-section">
  <section class="s1l-hero">
    <div class="s1l-hero-inner">
      <h1><?php the_archive_title(); ?></h1>
      <p><?php the_archive_description(); ?></p>
    </div>
  </section>

  <div class="s1l-section">
    <div class="s1l-grid">
      <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
        <article class="s1l-card s1l-post-card">
          <div class="thumb"><?php if (has_post_thumbnail()) the_post_thumbnail('large'); ?></div>
          <div class="s1l-card-body">
            <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
            <div class="meta"><?php echo esc_html(wp_trim_words(get_the_excerpt(), 22)); ?></div>
            <div class="s1l-actions">
              <a class="s1l-btn" href="<?php the_permalink(); ?>">Read</a>
            </div>
          </div>
        </article>
      <?php endwhile; else: ?>
        <div class="s1l-card"><div class="s1l-card-body">Nothing found.</div></div>
      <?php endif; ?>
    </div>
  </div>
</main>
<?php get_footer(); ?>

9) search.php

<?php get_header(); ?>
<main class="s1l-wrap s1l-section">
  <section class="s1l-hero">
    <div class="s1l-hero-inner">
      <h1>Search</h1>
      <p>Results for: <strong><?php echo esc_html(get_search_query()); ?></strong></p>
      <?php get_search_form(); ?>
    </div>
  </section>

  <div class="s1l-section">
    <div class="s1l-grid">
      <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
        <article class="s1l-card s1l-post-card">
          <div class="thumb"><?php if (has_post_thumbnail()) the_post_thumbnail('large'); ?></div>
          <div class="s1l-card-body">
            <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
            <div class="meta"><?php echo esc_html(wp_trim_words(get_the_excerpt(), 22)); ?></div>
            <div class="s1l-actions"><a class="s1l-btn" href="<?php the_permalink(); ?>">Read</a></div>
          </div>
        </article>
      <?php endwhile; else: ?>
        <div class="s1l-card"><div class="s1l-card-body">No results.</div></div>
      <?php endif; ?>
    </div>

    <div style="margin-top:18px;">
      <?php the_posts_pagination(); ?>
    </div>
  </div>
</main>
<?php get_footer(); ?>

10) 404.php

<?php get_header(); ?>
<main class="s1l-wrap s1l-section">
  <section class="s1l-hero">
    <div class="s1l-hero-inner">
      <h1>404</h1>
      <p>That page is missing. Use search or go back to Templates.</p>
      <div class="s1l-hero-actions">
        <a class="s1l-btn" href="/templates/">Open Templates</a>
        <a class="s1l-btn ghost" href="/templates/blog/">Back to Blog</a>
      </div>
    </div>
  </section>
</main>
<?php get_footer(); ?>

11) page-home.php (Homepage Template)

<?php
/*
Template Name: Studio1Live Home
*/
get_header();
?>

<main class="s1l-wrap">
  <section class="s1l-hero">
    <div class="s1l-hero-inner">
      <h1>Studio1Live Drops</h1>
      <p>
        Templates, tools, sports articles, and launch notes — all in one place.
        Built to match the look of <strong>/templates</strong>.
      </p>
      <div class="s1l-hero-actions">
        <a class="s1l-btn" href="/templates/">Templates Store</a>
        <a class="s1l-btn ghost" href="https://fixyourowncredit.studio1live.com/downloads">Downloads</a>
        <a class="s1l-btn ghost" href="https://studio1live.com/picks">Picks</a>
      </div>
    </div>
  </section>

  <section class="s1l-section">
    <h2 style="margin:0 0 12px;">Latest Blog Posts</h2>

    <div class="s1l-grid">
      <?php
      $q = new WP_Query(['posts_per_page'=>6]);
      if ($q->have_posts()) : while ($q->have_posts()) : $q->the_post();
      ?>
        <article class="s1l-card s1l-post-card">
          <div class="thumb"><?php if (has_post_thumbnail()) the_post_thumbnail('large'); ?></div>
          <div class="s1l-card-body">
            <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
            <div class="meta"><?php echo esc_html(wp_trim_words(get_the_excerpt(), 20)); ?></div>
            <div class="s1l-actions">
              <a class="s1l-btn" href="<?php the_permalink(); ?>">Read</a>
              <a class="s1l-btn ghost" href="/templates/">Templates</a>
            </div>
          </div>
        </article>
      <?php endwhile; wp_reset_postdata(); else: ?>
        <div class="s1l-card"><div class="s1l-card-body">No posts yet.</div></div>
      <?php endif; ?>
    </div>
  </section>

  <section class="s1l-section">
    <h2 style="margin:0 0 12px;">Embedded Sports / Picks</h2>
    <div class="s1l-grid">
      <div class="s1l-card"><div class="s1l-card-body">
        <h3>CFP / Miami Takes</h3>
        <div class="meta">Drop your sports links and YouTube embeds in posts using <code>[s1l_embed url="..."]</code>.</div>
        <div class="s1l-actions">
          <a class="s1l-btn" href="https://studio1live.com/picks">Open Picks</a>
          <a class="s1l-btn ghost" href="/templates/blog/">Open Blog</a>
        </div>
      </div></div>

      <div class="s1l-card"><div class="s1l-card-body">
        <h3>LinkStorm</h3>
        <div class="meta">Use LinkStorm to extract tags/structure for your articles.</div>
        <div class="s1l-actions">
          <a class="s1l-btn" href="https://studio1live.com/linkstorm/">Open Demo</a>
        </div>
      </div></div>

      <div class="s1l-card"><div class="s1l-card-body">
        <h3>Templates Admin</h3>
        <div class="meta">Manage storefront cards at <code>/templates/admin.html</code>.</div>
        <div class="s1l-actions"><a class="s1l-btn ghost" href="/templates/">Open Storefront</a></div>
      </div></div>
    </div>
  </section>

</main>

<?php get_footer(); ?>

12) assets/js/templates-ui.js

// light helper file — keeps theme lean
// you can expand later (smooth scroll, sticky header, etc.)

(function(){
  // Simple: add a class when scrolled
  const bar = document.querySelector('.s1l-topbar');
  if (!bar) return;

  window.addEventListener('scroll', () => {
    if (window.scrollY > 12) bar.style.backdropFilter = 'blur(10px)';
    else bar.style.backdropFilter = 'none';
  }, { passive:true });
})();

13) README.txt

Studio1Live Templates Theme

INSTALL
1) Zip the folder: studio1live-templates-theme/
2) WordPress Admin → Appearance → Themes → Add New → Upload Theme
3) Activate

HOMEPAGE
1) Create a new Page named: Home
2) In Page Attributes → Template: Studio1Live Home
3) Settings → Reading → Your homepage displays → A static page → select Home

MENUS
Appearance → Menus
- Primary Menu: Home, Blog, Categories, etc.
- Footer Menu: Privacy, Contact, etc.

IMPORTANT LINKS (pre-wired in templates)
- /templates/  (your storefront)
- https://fixyourowncredit.studio1live.com/downloads
- https://studio1live.com/picks
- https://studio1live.com/linkstorm/

SPORTS ARTICLES / EMBEDS
In any post, embed YouTube or tweets using:

[s1l_embed url=”https://…”]

BUTTONS

[s1l_button text=”Open Templates” url=”/templates/”]

[s1l_button text=”LinkStorm” url=”https://studio1live.com/linkstorm/” type=”ghost”] SELLING NOTE Include screenshot.png (1200×900) before you sell the ZIP.


14) screenshot.png

Create a 1200×900 screenshot that shows:

  • Dark hero
  • 3 product cards
  • Your logo/brand

(WordPress uses this image in the Themes screen.)


Your sports articles + tags request

You said: “all the links and tags we made sports articles needs to be embedded all in this theme.”

To do that the right way, I need ONE of these from you:

  1. A list of your sports article URLs (or 5–10 to start)
    OR
  2. Export your WP posts as an XML file (Tools → Export) and upload it here

Then I will:

  • Create a demo-content import pack
  • Auto-create categories like: CFP, Miami Hurricanes, Penalty Bias, Picks, Recaps
  • Add a homepage section that auto-pulls your “Sports” category and displays them as cards.

Next step

If you want this as a ZIP automatically, tell me your exact folder name you want (example: studio1live-templates-theme) and I’ll package it for you in the sandbox.

#CFB #ConferenceChampionship #CFP #Miami #ACC #SEC #Big12 #CollegeFootballPlayoff

Shoutouts: @CFBPlayoff, @ESPNCFB, @CollegeGameDay, #CFB, #ConferenceChampionship, #CollegeFootballPlayoff

Follow: @herudaguru for more unfiltered college football breakdowns, rants, and picks.

Support the Studio1Live Sports Family

Tags: #herudaguru #soccergod #studio1live #MiamiHurricanes #CFP #CollegeFootball #CFPCommittee #SportsPicks #SportsBettingCommunity Shoutouts & YouTube Tags:

@AngelSerrano, @MrOvadose101, @Hurricane357, @Normal Guy, @Slug Bruce, @Black Panther JackieBrown, @Darvis Baylock, @Aniyunwiya_Nike903, @FOH, @Angel Serrano, @Timothy Brown:Tru-Shu: Shu, @KillSwitch R6, @Dre Light, @Saint_Louis, @Kosmon Cal tv, @Crisjamie Mac, @Nonya Bidness, @Shaquile Oatmeal, @TassCo The C.E.O, @JJ The Enlightened One, @Jeramiah Myers, @Sunshine, @inthehighest1, @Siemon The atheistkilla, @James Smith, @SunofdeBeach, @Vitamin C, @Mohamed Hussain, @Anthony Manzano, @B Correa, @818CaliCane, @Jorge Mayorga, @Rich Andrews, @El_rico88, @Scuba Steve, @Ryder Boy, @jrgodfatha88, @ChiTown Cane, @The Dulci Effect, @Live and Learn, @IcebergSlim38, @SipAmazin, @Yanik- Alahim D’orsey Bey, @KARMACOMING2C0113CT, @Zac Pac – Dizzies Be Dizzy, @Bailioso, @Beast Of Burden, @MoneyLineRay, @KDUB’S WORLD, @blackwhileindian, @SHAWN P DIDDY, @BIG CHIEF TOILET PAPER, @LACONIC, @Master of Self, @Big Chief All American, @Michelle R, @I Am Scorpion, @PatrickGeneLeBlancHardy, @Black Hole Sun, @Motivated Dedicated, @EL Gumbo, @Migo_critt, @Coinlito’s Way, @David Williams, @KMS_929, @Talking Trash With the Steelers Gang!, @Daniel Berri Sports Highlights, @Shard, @Billy DeLuLu, @BangkokVice