Create Astra child theme and fix page layouts
- Created astra-child-hvac child theme with all HVAC page templates - Applied Astra-specific layout settings to remove sidebars - Set all HVAC pages to 'no-sidebar' layout using Astra meta - Added custom CSS to child theme for full-width layouts - Templates now properly render shortcode content without sidebars 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
fda7b6fa59
commit
b55b169750
6 changed files with 414 additions and 15 deletions
71
scripts/add-child-theme-css.sh
Executable file
71
scripts/add-child-theme-css.sh
Executable file
|
|
@ -0,0 +1,71 @@
|
|||
#!/bin/bash
|
||||
|
||||
echo "=== Adding CSS to Child Theme ==="
|
||||
|
||||
# SSH into staging and add CSS
|
||||
ssh roodev@146.190.76.204 << 'EOF'
|
||||
cd /home/974670.cloudwaysapps.com/uberrxmprk/public_html
|
||||
|
||||
# Add custom CSS to child theme style.css
|
||||
cat >> "wp-content/themes/astra-child-hvac/style.css" << 'CSS'
|
||||
|
||||
/* HVAC Community Events - Hide sidebars and ensure full width */
|
||||
body.page-template-page-trainer-registration .sidebar,
|
||||
body.page-template-page-trainer-registration #secondary,
|
||||
body.page-template-page-trainer-registration .widget-area,
|
||||
body.page-template-page-trainer-dashboard .sidebar,
|
||||
body.page-template-page-trainer-dashboard #secondary,
|
||||
body.page-template-page-trainer-dashboard .widget-area,
|
||||
body.page-template-page-master-dashboard .sidebar,
|
||||
body.page-template-page-master-dashboard #secondary,
|
||||
body.page-template-page-master-dashboard .widget-area,
|
||||
body[class*="page-template-page-"] .sidebar,
|
||||
body[class*="page-template-page-"] #secondary,
|
||||
body[class*="page-template-page-"] .widget-area {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Full width content for HVAC pages */
|
||||
body[class*="page-template-page-"] #primary,
|
||||
body[class*="page-template-page-"] .content-area,
|
||||
body[class*="page-template-page-"] .site-main {
|
||||
width: 100% !important;
|
||||
max-width: 100% !important;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
/* Remove default container constraints */
|
||||
body[class*="page-template-page-"] .ast-container {
|
||||
max-width: 100% !important;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* HVAC page wrapper styles */
|
||||
.hvac-page-wrapper {
|
||||
width: 100%;
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 40px 20px;
|
||||
}
|
||||
|
||||
/* Hide page titles on HVAC pages */
|
||||
body[class*="page-template-page-"] .entry-title {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Ensure proper layout for HVAC content */
|
||||
body[class*="page-template-page-"] .site-content {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body[class*="page-template-page-"] .site-content .ast-container {
|
||||
display: block;
|
||||
}
|
||||
CSS
|
||||
|
||||
# Clear all caches
|
||||
wp cache flush
|
||||
wp breeze purge --all
|
||||
|
||||
echo "CSS added to child theme successfully!"
|
||||
EOF
|
||||
|
|
@ -1,25 +1,33 @@
|
|||
#!/bin/bash
|
||||
|
||||
echo "=== Copying Templates to Theme Directory ==="
|
||||
echo "=== Copying Page Templates to Theme Directory ==="
|
||||
|
||||
ssh roodev@146.190.76.204 << 'ENDSSH'
|
||||
# SSH into staging and copy templates
|
||||
ssh roodev@146.190.76.204 << 'EOF'
|
||||
cd /home/974670.cloudwaysapps.com/uberrxmprk/public_html
|
||||
|
||||
# Create hvac-community-events directory in theme
|
||||
echo "Creating template override directory in theme..."
|
||||
mkdir -p wp-content/themes/astra/hvac-community-events
|
||||
# Get active theme directory
|
||||
THEME_DIR=$(wp theme path $(wp theme list --status=active --field=name))
|
||||
echo "Active theme directory: $THEME_DIR"
|
||||
|
||||
# Create hvac-community-events directory in theme if it doesn't exist
|
||||
mkdir -p "$THEME_DIR/hvac-community-events"
|
||||
|
||||
# Copy page templates from plugin to theme
|
||||
PLUGIN_DIR="wp-content/plugins/hvac-community-events"
|
||||
|
||||
# Copy all page templates
|
||||
echo "Copying page templates..."
|
||||
cp wp-content/plugins/hvac-community-events/templates/page-*.php wp-content/themes/astra/hvac-community-events/
|
||||
if [ -d "$PLUGIN_DIR/templates" ]; then
|
||||
# Copy all page-*.php files
|
||||
find "$PLUGIN_DIR/templates" -name "page-*.php" -exec cp {} "$THEME_DIR/hvac-community-events/" \;
|
||||
|
||||
# List copied files
|
||||
echo -e "\nCopied templates:"
|
||||
ls -la wp-content/themes/astra/hvac-community-events/page-*.php
|
||||
echo "Templates copied to theme:"
|
||||
ls -la "$THEME_DIR/hvac-community-events/"
|
||||
else
|
||||
echo "Plugin templates directory not found!"
|
||||
fi
|
||||
|
||||
# Clear cache
|
||||
wp cache flush
|
||||
wp breeze purge --cache=all
|
||||
|
||||
echo -e "\n✅ Templates copied to theme directory"
|
||||
ENDSSH
|
||||
EOF
|
||||
121
scripts/create-child-theme.sh
Executable file
121
scripts/create-child-theme.sh
Executable file
|
|
@ -0,0 +1,121 @@
|
|||
#!/bin/bash
|
||||
|
||||
echo "=== Creating Astra Child Theme for HVAC Community Events ==="
|
||||
|
||||
# SSH into staging and create child theme
|
||||
ssh roodev@146.190.76.204 << 'EOF'
|
||||
cd /home/974670.cloudwaysapps.com/uberrxmprk/public_html
|
||||
|
||||
# Create child theme directory
|
||||
CHILD_THEME_DIR="wp-content/themes/astra-child-hvac"
|
||||
echo "Creating child theme directory: $CHILD_THEME_DIR"
|
||||
mkdir -p "$CHILD_THEME_DIR"
|
||||
|
||||
# Create style.css for child theme
|
||||
cat > "$CHILD_THEME_DIR/style.css" << 'STYLE'
|
||||
/*
|
||||
Theme Name: Astra Child - HVAC Community Events
|
||||
Theme URI: https://upskill.measurequick.com
|
||||
Author: Ben Reed
|
||||
Author URI: https://tealmaker.com
|
||||
Description: Child theme for Astra to support HVAC Community Events plugin templates
|
||||
Template: astra
|
||||
Version: 1.0.0
|
||||
License: GPL v2 or later
|
||||
Text Domain: astra-child-hvac
|
||||
*/
|
||||
|
||||
/* Import parent theme styles */
|
||||
@import url("../astra/style.css");
|
||||
|
||||
/* Custom styles for HVAC Community Events can be added below */
|
||||
STYLE
|
||||
|
||||
# Create functions.php for child theme
|
||||
cat > "$CHILD_THEME_DIR/functions.php" << 'PHP'
|
||||
<?php
|
||||
/**
|
||||
* Astra Child Theme functions and definitions
|
||||
*
|
||||
* @link https://developer.wordpress.org/themes/basics/theme-functions/
|
||||
*
|
||||
* @package Astra-child-hvac
|
||||
* @since 1.0.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* Define Constants
|
||||
*/
|
||||
define( 'CHILD_THEME_ASTRA_CHILD_VERSION', '1.0.0' );
|
||||
|
||||
/**
|
||||
* Enqueue styles
|
||||
*/
|
||||
function child_enqueue_styles() {
|
||||
// Enqueue parent theme stylesheet
|
||||
wp_enqueue_style( 'astra-parent-theme-css', get_template_directory_uri() . '/style.css', array('astra-theme-css'), ASTRA_THEME_VERSION, 'all' );
|
||||
}
|
||||
add_action( 'wp_enqueue_scripts', 'child_enqueue_styles', 15 );
|
||||
|
||||
/**
|
||||
* Load HVAC plugin templates from child theme
|
||||
* This allows the plugin templates to work properly
|
||||
*/
|
||||
add_filter( 'theme_page_templates', function( $templates ) {
|
||||
// Add HVAC plugin page templates
|
||||
$hvac_templates = array(
|
||||
'page-trainer-dashboard.php' => 'Trainer Dashboard',
|
||||
'page-trainer-registration.php' => 'Trainer Registration',
|
||||
'page-master-dashboard.php' => 'Master Dashboard',
|
||||
'page-trainer-login.php' => 'Trainer Login',
|
||||
'page-trainer-profile.php' => 'Trainer Profile',
|
||||
'page-manage-event.php' => 'Manage Event',
|
||||
'page-event-summary.php' => 'Event Summary',
|
||||
'page-certificate-reports.php' => 'Certificate Reports',
|
||||
'page-generate-certificates.php' => 'Generate Certificates',
|
||||
'page-email-attendees.php' => 'Email Attendees',
|
||||
'page-communication-templates.php' => 'Communication Templates',
|
||||
'page-communication-schedules.php' => 'Communication Schedules',
|
||||
'page-documentation.php' => 'Documentation',
|
||||
'page-attendee-profile.php' => 'Attendee Profile',
|
||||
'page-google-sheets.php' => 'Google Sheets',
|
||||
'page-certificate-fix.php' => 'Certificate Fix',
|
||||
'page-trainer-account-pending.php' => 'Account Pending',
|
||||
'page-trainer-account-disabled.php' => 'Account Disabled',
|
||||
'page-registration-pending.php' => 'Registration Pending',
|
||||
);
|
||||
|
||||
return array_merge( $templates, $hvac_templates );
|
||||
}, 10, 1 );
|
||||
PHP
|
||||
|
||||
# Create screenshot placeholder
|
||||
echo "Creating screenshot placeholder..."
|
||||
cat > "$CHILD_THEME_DIR/screenshot.png" << 'SCREENSHOT'
|
||||
# This is a placeholder - replace with actual screenshot
|
||||
SCREENSHOT
|
||||
|
||||
# Activate the child theme
|
||||
echo "Activating child theme..."
|
||||
wp theme activate astra-child-hvac
|
||||
|
||||
# Create directory for HVAC templates
|
||||
mkdir -p "$CHILD_THEME_DIR/hvac-community-events"
|
||||
|
||||
# Copy templates from plugin to child theme
|
||||
PLUGIN_DIR="wp-content/plugins/hvac-community-events"
|
||||
if [ -d "$PLUGIN_DIR/templates" ]; then
|
||||
echo "Copying page templates to child theme..."
|
||||
find "$PLUGIN_DIR/templates" -name "page-*.php" -exec cp {} "$CHILD_THEME_DIR/" \;
|
||||
|
||||
echo "Templates copied:"
|
||||
ls -la "$CHILD_THEME_DIR"/page-*.php
|
||||
fi
|
||||
|
||||
# Clear cache
|
||||
wp cache flush
|
||||
echo "Child theme created and activated successfully!"
|
||||
|
||||
# Show theme info
|
||||
wp theme get astra-child-hvac --fields=name,status,version
|
||||
EOF
|
||||
120
scripts/fix-child-theme-layout.sh
Executable file
120
scripts/fix-child-theme-layout.sh
Executable file
|
|
@ -0,0 +1,120 @@
|
|||
#!/bin/bash
|
||||
|
||||
echo "=== Fixing Child Theme Layout for HVAC Pages ==="
|
||||
|
||||
# SSH into staging and update CSS
|
||||
ssh roodev@146.190.76.204 << 'EOF'
|
||||
cd /home/974670.cloudwaysapps.com/uberrxmprk/public_html
|
||||
|
||||
# Create a more comprehensive CSS fix
|
||||
cat > "wp-content/themes/astra-child-hvac/hvac-layout-fix.css" << 'CSS'
|
||||
/* Force full-width layout on HVAC plugin pages */
|
||||
/* Target pages by URL pattern */
|
||||
body.wp-child-theme-astra-child-hvac .sidebar,
|
||||
body.wp-child-theme-astra-child-hvac #secondary,
|
||||
body.wp-child-theme-astra-child-hvac .widget-area,
|
||||
body.wp-child-theme-astra-child-hvac aside.widget-area {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Full width for main content area */
|
||||
body.wp-child-theme-astra-child-hvac #primary,
|
||||
body.wp-child-theme-astra-child-hvac .content-area,
|
||||
body.wp-child-theme-astra-child-hvac .site-main,
|
||||
body.wp-child-theme-astra-child-hvac main {
|
||||
width: 100% !important;
|
||||
max-width: 100% !important;
|
||||
float: none !important;
|
||||
margin: 0 auto !important;
|
||||
}
|
||||
|
||||
/* Remove Astra's container constraints */
|
||||
body.wp-child-theme-astra-child-hvac .ast-container {
|
||||
max-width: 100% !important;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
/* HVAC page wrapper */
|
||||
body.wp-child-theme-astra-child-hvac .hvac-page-wrapper {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 40px 20px;
|
||||
}
|
||||
|
||||
/* Hide page titles */
|
||||
body.wp-child-theme-astra-child-hvac .entry-title {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Target specific HVAC pages by path */
|
||||
body.page-id-5334 .sidebar,
|
||||
body.page-id-5334 #secondary,
|
||||
body.page-id-5334 .widget-area,
|
||||
body.page-id-5333 .sidebar,
|
||||
body.page-id-5333 #secondary,
|
||||
body.page-id-5333 .widget-area,
|
||||
body.page-id-5347 .sidebar,
|
||||
body.page-id-5347 #secondary,
|
||||
body.page-id-5347 .widget-area {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
body.page-id-5334 #primary,
|
||||
body.page-id-5333 #primary,
|
||||
body.page-id-5347 #primary {
|
||||
width: 100% !important;
|
||||
max-width: 100% !important;
|
||||
}
|
||||
CSS
|
||||
|
||||
# Update functions.php to enqueue the CSS
|
||||
cat >> "wp-content/themes/astra-child-hvac/functions.php" << 'PHP'
|
||||
|
||||
/**
|
||||
* Enqueue HVAC layout fixes
|
||||
*/
|
||||
function hvac_child_theme_styles() {
|
||||
// Only load on pages that might be HVAC pages
|
||||
if (is_page()) {
|
||||
$current_url = $_SERVER['REQUEST_URI'];
|
||||
$hvac_patterns = array('trainer', 'master-trainer', 'training-login', 'certificate', 'event');
|
||||
|
||||
foreach ($hvac_patterns as $pattern) {
|
||||
if (strpos($current_url, $pattern) !== false) {
|
||||
wp_enqueue_style('hvac-layout-fix', get_stylesheet_directory_uri() . '/hvac-layout-fix.css', array(), '1.0.1');
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
add_action('wp_enqueue_scripts', 'hvac_child_theme_styles', 20);
|
||||
|
||||
/**
|
||||
* Add body class for HVAC pages
|
||||
*/
|
||||
function hvac_body_classes($classes) {
|
||||
if (is_page()) {
|
||||
$current_url = $_SERVER['REQUEST_URI'];
|
||||
$hvac_patterns = array('trainer', 'master-trainer', 'training-login', 'certificate', 'event');
|
||||
|
||||
foreach ($hvac_patterns as $pattern) {
|
||||
if (strpos($current_url, $pattern) !== false) {
|
||||
$classes[] = 'hvac-plugin-page';
|
||||
$classes[] = 'hvac-full-width';
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $classes;
|
||||
}
|
||||
add_filter('body_class', 'hvac_body_classes');
|
||||
PHP
|
||||
|
||||
# Clear all caches
|
||||
wp cache flush
|
||||
wp breeze purge --cache=all
|
||||
|
||||
echo "Layout fixes applied successfully!"
|
||||
EOF
|
||||
40
scripts/force-full-width-layout.sh
Executable file
40
scripts/force-full-width-layout.sh
Executable file
|
|
@ -0,0 +1,40 @@
|
|||
#!/bin/bash
|
||||
|
||||
echo "=== Forcing Full Width Layout for HVAC Pages ==="
|
||||
|
||||
# SSH into staging and force full width
|
||||
ssh roodev@146.190.76.204 << 'EOF'
|
||||
cd /home/974670.cloudwaysapps.com/uberrxmprk/public_html
|
||||
|
||||
# Update page meta to force no sidebar
|
||||
echo "Setting page layout to no-sidebar..."
|
||||
|
||||
# Get all HVAC related pages
|
||||
HVAC_PAGES=$(wp post list --post_type=page --fields=ID,post_title --format=csv | grep -E "(Trainer|Master|Certificate|Event|Registration|Login)" | cut -d',' -f1 | grep -v "ID")
|
||||
|
||||
for page_id in $HVAC_PAGES; do
|
||||
if [ ! -z "$page_id" ]; then
|
||||
echo "Updating page $page_id to no-sidebar layout"
|
||||
# Astra uses this meta key for sidebar layout
|
||||
wp post meta update $page_id ast-site-content-layout "no-sidebar"
|
||||
wp post meta update $page_id site-content-layout "no-sidebar"
|
||||
wp post meta update $page_id site-sidebar-layout "no-sidebar"
|
||||
|
||||
# Also add theme-specific layout settings
|
||||
wp post meta update $page_id _astra_content_layout_flag "disabled"
|
||||
wp post meta update $page_id ast-featured-img "disabled"
|
||||
wp post meta update $page_id ast-title-bar-display "disabled"
|
||||
fi
|
||||
done
|
||||
|
||||
# List updated pages
|
||||
echo -e "\nUpdated pages:"
|
||||
wp post list --post_type=page --meta_key=ast-site-content-layout --meta_value=no-sidebar --fields=ID,post_title --format=table
|
||||
|
||||
# Clear all caches
|
||||
wp cache flush
|
||||
wp breeze purge --cache=all
|
||||
wp opcache reset
|
||||
|
||||
echo "Full width layout forced successfully!"
|
||||
EOF
|
||||
39
scripts/reassign-templates.sh
Executable file
39
scripts/reassign-templates.sh
Executable file
|
|
@ -0,0 +1,39 @@
|
|||
#!/bin/bash
|
||||
|
||||
echo "=== Reassigning Page Templates ==="
|
||||
|
||||
# SSH into staging and reassign templates
|
||||
ssh roodev@146.190.76.204 << 'EOF'
|
||||
cd /home/974670.cloudwaysapps.com/uberrxmprk/public_html
|
||||
|
||||
# Get all HVAC pages and update their templates
|
||||
echo "Finding and updating HVAC pages..."
|
||||
|
||||
# Update trainer registration page
|
||||
wp post list --post_type=page --meta_key=_wp_page_template --meta_value=page-trainer-registration.php --field=ID | while read page_id; do
|
||||
echo "Updating page $page_id - Trainer Registration"
|
||||
wp post meta update $page_id _wp_page_template "page-trainer-registration.php"
|
||||
done
|
||||
|
||||
# Update trainer dashboard
|
||||
wp post list --post_type=page --name=dashboard --post_parent=5332 --field=ID | while read page_id; do
|
||||
echo "Updating page $page_id - Trainer Dashboard"
|
||||
wp post meta update $page_id _wp_page_template "page-trainer-dashboard.php"
|
||||
done
|
||||
|
||||
# Update master dashboard
|
||||
wp post list --post_type=page --name=dashboard --post_parent=5346 --field=ID | while read page_id; do
|
||||
echo "Updating page $page_id - Master Dashboard"
|
||||
wp post meta update $page_id _wp_page_template "page-master-dashboard.php"
|
||||
done
|
||||
|
||||
# List all pages with their templates
|
||||
echo -e "\nCurrent page templates:"
|
||||
wp post list --post_type=page --meta_key=_wp_page_template --fields=ID,post_title,post_name --format=table | head -20
|
||||
|
||||
# Clear all caches
|
||||
wp cache flush
|
||||
wp breeze purge --cache=all
|
||||
|
||||
echo "Templates reassigned successfully!"
|
||||
EOF
|
||||
Loading…
Reference in a new issue