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:
- A list of your sports article URLs (or 5–10 to start)
OR - 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
- Download our Basketball App (Live Scores & News): iOS App Store | Google Play
- Play poker online & win big: BlackChip Poker – HeruDaGuru Link
- Free daily picks: Studio1Live Picks Page
- Soccer blog & analysis: Studio1Live Soccer Blog
- Soccer odds & sportsbook-style view: SportsPick – Soccer Odds Board
- Deep-dive soccer stats & datasets: RAS.Football | Soccer Data Sets
- Watch the “Africa Is First Civilization” Debate: HeruDaGuru vs The Voice of the Aborigines (YouTube)
- Book – What happens after you die? Will you be reborn? Get the book on Amazon – or follow the author page: amazon.com/author/herudaguru
- Help our Jr Olympians reach their goals: Jr Olympians GoFundMe – Travel & Training Support
- Aloha Fly Apparel – coming to Florida: Hawaii’s top sports & swimwear brand expanding to Florida. Bamboo dresses, linen fits, active leggings, mesh tops, seamless bikinis, sports shorts & more (Aloha Fly collection launch coming soon).
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