Release as SoloFrame Evo (#2)

* docs: Add onboarding documentation for new developers

Add four comprehensive guides to help new developers get started
with the VDI-Starter-v5 WordPress theme:

- docs/getting-started.md: Setup from zero, local WordPress options,
  env config, theme activation warnings, troubleshooting
- docs/architecture.md: Bootstrap flow, 7 architectural layers,
  namespace conventions, WP hooks cleanup, enqueue system, theme.json
- docs/creating-blocks.md: Step-by-step ACF block creation tutorial,
  helper functions, parent-child patterns, Tailwind integration
- docs/reference.md: Hooks/filters tables, design tokens, CSS import
  tree, JS module graph, class reference, CLI commands, deployment

Update README.md: trim deep-dive API docs (moved to reference),
add documentation links section, fix CSS paths (views/styles/ →
styles/), add missing contact-info block, fix deployment filename
typo (wpengine,yml → wpengine.yml), add backToTop.js and
enqEditorAssets(), add namespace conventions table.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* docs: language graph

* docs: Update readme

* 🔵 other: Rename project and publish

* 🔵 other: Update .gitignore
This commit is contained in:
Keith Solomon
2026-07-29 15:52:21 -05:00
committed by GitHub
co-authored by Claude Opus 4.7
parent bcc701120b
commit e2f6270717
66 changed files with 2797 additions and 713 deletions
+5 -17
View File
@@ -18,11 +18,11 @@ if ( isset( $_GET['activated'] ) && is_admin() ) {
* Sample nested structure
*
* 'Parent Page' => array(
* 'Subpage 1' => array(
* 'Sub-subpage 1',
* 'Sub-subpage 2'
* 'Child page 1' => array(
* 'Grandchild page 1',
* 'Grandchild page 2'
* ),
* 'Subpage 2.2' => array()
* 'Child page 2' => array()
* ),
*/
);
@@ -105,17 +105,9 @@ if ( isset( $_GET['activated'] ) && is_admin() ) {
$muPlugins = array(
array(
'url' => 'https://docs.vincentdevelopment.ca/files/advanced-custom-fields-pro.zip',
'url' => 'https://downloads.wordpress.org/plugin/secure-custom-fields.6.9.3.zip',
'active' => true,
),
array(
'url' => 'https://docs.vincentdevelopment.ca/files/gravity-forms.zip',
'active' => true,
),
array(
'url' => 'https://updraftplus.com/wp-content/uploads/updraftplus.zip',
'active' => false,
),
array(
'url' => 'https://downloads.wordpress.org/plugin/simple-history.5.11.0.zip',
'active' => true,
@@ -128,10 +120,6 @@ if ( isset( $_GET['activated'] ) && is_admin() ) {
'url' => 'https://downloads.wordpress.org/plugin/better-search-replace.1.4.10.zip',
'active' => true,
),
array(
'url' => 'https://downloads.wordpress.org/plugin/google-site-kit.1.153.0.zip',
'active' => false,
),
);
// Custom log file
+2 -2
View File
@@ -2,11 +2,11 @@
/**
* ACF (Advanced Custom Fields) support class & functions
*
* @package BasicWP
* @package SoloFrameEvo
* @since 1.0.0
*/
namespace BasicWP;
namespace SoloFrameEvo;
/**
* Class ACF
+1 -1
View File
@@ -1,5 +1,5 @@
<?php
namespace BasicWP;
namespace SoloFrameEvo;
/**
* Class Breadcrumbs
+10 -10
View File
@@ -1,12 +1,12 @@
<?php
/**
* BasicWP Theme Enqueue Class
* SoloFrameEvo Theme Enqueue Class
*
* @package BasicWP
* @package SoloFrameEvo
* @since 1.0.0
*/
namespace BasicWP;
namespace SoloFrameEvo;
/**
* Class Enqueue
@@ -39,7 +39,7 @@ class Enqueue {
$css_path = '/static/dist/theme.css';
if ( file_exists( $theme_dir . $css_path ) ) {
$version = filemtime( $theme_dir . $css_path );
wp_enqueue_style( 'basicwp-theme', $theme_uri . $css_path, array(), $version );
wp_enqueue_style( 'sf-evo-theme', $theme_uri . $css_path, array(), $version );
}
$font_ver = gmdate( 'U' );
@@ -53,8 +53,8 @@ class Enqueue {
if ( file_exists( $theme_dir . $js_path ) ) {
$version = filemtime( $theme_dir . $js_path );
wp_enqueue_script( 'jquery' ); // Needed by downstream scripts; modules can't depend on classic scripts.
wp_enqueue_script_module( 'basicwp-theme', $theme_uri . $js_path, array(), $version );
wp_enqueue_script_module( 'basicwp-button', $theme_uri . '/static/js/components/button.js', array( 'basicwp-theme' ), $version );
wp_enqueue_script_module( 'sf-evo-theme', $theme_uri . $js_path, array(), $version );
wp_enqueue_script_module( 'sf-evo-button', $theme_uri . '/static/js/components/button.js', array( 'sf-evo-theme' ), $version );
}
}
@@ -74,7 +74,7 @@ class Enqueue {
$admin_css_path = '/styles/backend/admin.css';
if ( file_exists( $theme_dir . $admin_css_path ) ) {
$version = filemtime( $theme_dir . $admin_css_path );
wp_enqueue_style( 'basicwp-admin', $theme_uri . $admin_css_path, array(), $version );
wp_enqueue_style( 'sf-evo-admin', $theme_uri . $admin_css_path, array(), $version );
}
/**
@@ -84,8 +84,8 @@ class Enqueue {
if ( file_exists( $theme_dir . $admin_js_path ) ) {
$version = filemtime( $theme_dir . $admin_js_path );
wp_enqueue_script( 'jquery' ); // Needed by downstream scripts; modules can't depend on classic scripts.
wp_enqueue_script_module( 'basicwp-admin', $theme_uri . $admin_js_path, array(), $version );
wp_enqueue_script_module( 'basicwp-button', $theme_uri . '/static/js/components/button.js', array( 'basicwp-admin' ), $version );
wp_enqueue_script_module( 'sf-evo-admin', $theme_uri . $admin_js_path, array(), $version );
wp_enqueue_script_module( 'sf-evo-button', $theme_uri . '/static/js/components/button.js', array( 'sf-evo-admin' ), $version );
}
}
@@ -103,7 +103,7 @@ class Enqueue {
if ( file_exists( $theme_dir . $editor_css_path ) ) {
$version = filemtime( $theme_dir . $editor_css_path );
wp_enqueue_style( 'basicwp-editor', $theme_uri . $editor_css_path, array(), $version );
wp_enqueue_style( 'sf-evo-editor', $theme_uri . $editor_css_path, array(), $version );
}
}
}
+3 -3
View File
@@ -1,12 +1,12 @@
<?php
/**
* BasicWP MenuItems Class
* SoloFrameEvo MenuItems Class
*
* @package BasicWP
* @package SoloFrameEvo
* @since 1.0.0
*/
namespace BasicWP;
namespace SoloFrameEvo;
/**
* Class MenuItems
+2 -2
View File
@@ -2,11 +2,11 @@
/**
* Resources custom post type & taxonomies
*
* @package BasicWP
* @package SoloFrameEvo
* @since 1.0.0
*/
namespace BasicWP;
namespace SoloFrameEvo;
/**
* Class Resources
+3 -3
View File
@@ -2,11 +2,11 @@
/**
* Filters. etc
*
* @package BasicWP
* @package SoloFrameEvo
* @since 1.0.0
*/
namespace BasicWP;
namespace SoloFrameEvo;
/** Get child pages of the current page, sorted by menu order.
*
@@ -154,7 +154,7 @@ function getTheTitle() {
} elseif ( is_search() ) {
$title = sprintf(
/* translators: %s is replaced with the search query */
__( 'Search Results for "%s"', 'basicwp' ),
__( 'Search Results for "%s"', 'sf-evo' ),
get_search_query()
);
} elseif ( is_404() ) {
+5 -5
View File
@@ -1,12 +1,12 @@
<?php
/**
* BasicWP Theme Helpers
* SoloFrameEvo Theme Helpers
*
* @package BasicWP
* @package SoloFrameEvo
* @since 1.0.0
*/
namespace BasicWP;
namespace SoloFrameEvo;
// Define global variables for theme and views folder paths.
global $theme, $views;
@@ -122,8 +122,8 @@ add_filter( 'menu_order', __NAMESPACE__ . '\\customMenuOrder', 10, 1 );
*/
function blockCategories( $categories ) {
$vdi_cat = array(
'slug' => 'vdi-blocks',
'title' => 'VDI Custom Blocks',
'slug' => 'sf-blocks',
'title' => 'SoloFrame Custom Blocks',
'icon' => 'dashicons-admin-customizer',
);
+3 -3
View File
@@ -1,12 +1,12 @@
<?php
/**
* BasicWP Theme Hooks
* SoloFrameEvo Theme Hooks
*
* @package BasicWP
* @package SoloFrameEvo
* @since 1.0.0
*/
namespace BasicWP;
namespace SoloFrameEvo;
/**
* Add preconnect for Google fonts to head
+3 -3
View File
@@ -1,12 +1,12 @@
<?php
/**
* Search features for BasicWP theme.
* Search features for SoloFrameEvo theme.
*
* @package BasicWP
* @package SoloFrameEvo
* @since 1.0.0
*/
namespace BasicWP;
namespace SoloFrameEvo;
/**
* Modifies the WordPress query object for page search functionality.
+3 -3
View File
@@ -2,11 +2,11 @@
/**
* Add a comment to show which template is being used on the current page.
*
* @package BasicWP
* @package SoloFrameEvo
* @since 1.0.0
*/
namespace BasicWP;
namespace SoloFrameEvo;
/**
* Class ShowTemplate
@@ -14,7 +14,7 @@ namespace BasicWP;
* Displays the active WordPress template in the footer for debugging purposes.
* Determines which template WordPress has chosen to use and outputs it as an HTML comment.
*
* @package BasicWP
* @package SoloFrameEvo
* @since 1.0.0
*/
class ShowTemplate {