5e2bb8585a
- Initialize beads (.beads/ directory) - Add Claude Code hooks for SessionStart/PreCompact - Update CLAUDE.md to clarify all build artifacts are committed - Update .gitignore to allow node_modules and dist
140 lines
4.4 KiB
PHP
Executable File
140 lines
4.4 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Theme Setup
|
|
*
|
|
* @package HomeProz
|
|
*/
|
|
|
|
// Prevent direct access
|
|
if (!defined('ABSPATH')) {
|
|
exit;
|
|
}
|
|
|
|
/**
|
|
* Sets up theme defaults and registers support for various WordPress features.
|
|
*/
|
|
function homeproz_setup() {
|
|
// Add default posts and comments RSS feed links to head
|
|
add_theme_support('automatic-feed-links');
|
|
|
|
// Let WordPress manage the document title
|
|
add_theme_support('title-tag');
|
|
|
|
// Enable support for Post Thumbnails on posts and pages
|
|
add_theme_support('post-thumbnails');
|
|
|
|
// Custom image sizes
|
|
add_image_size('property-card', 640, 400, true); // 16:10 ratio for property cards
|
|
add_image_size('property-gallery', 1200, 800, true); // Gallery images
|
|
add_image_size('agent-photo', 400, 400, true); // Square agent photos
|
|
|
|
// Register navigation menus
|
|
register_nav_menus(array(
|
|
'primary' => esc_html__('Primary Menu', 'homeproz'),
|
|
'footer' => esc_html__('Footer Menu', 'homeproz'),
|
|
));
|
|
|
|
// Switch default core markup to output valid HTML5
|
|
add_theme_support('html5', array(
|
|
'search-form',
|
|
'comment-form',
|
|
'comment-list',
|
|
'gallery',
|
|
'caption',
|
|
'style',
|
|
'script',
|
|
));
|
|
|
|
// Add support for block styles
|
|
add_theme_support('wp-block-styles');
|
|
|
|
// Add support for responsive embeds
|
|
add_theme_support('responsive-embeds');
|
|
|
|
// Add support for editor styles
|
|
add_theme_support('editor-styles');
|
|
|
|
// Add support for custom logo
|
|
add_theme_support('custom-logo', array(
|
|
'height' => 100,
|
|
'width' => 300,
|
|
'flex-height' => true,
|
|
'flex-width' => true,
|
|
));
|
|
|
|
// Add support for site icon (favicon) via Customizer
|
|
add_theme_support('site-icon');
|
|
|
|
// Disable core block patterns (we'll add our own)
|
|
remove_theme_support('core-block-patterns');
|
|
}
|
|
add_action('after_setup_theme', 'homeproz_setup');
|
|
|
|
/**
|
|
* Add theme color meta tag for mobile browsers
|
|
*/
|
|
function homeproz_theme_color_meta() {
|
|
echo '<meta name="theme-color" content="#0A0A0A">' . "\n";
|
|
echo '<meta name="msapplication-TileColor" content="#0A0A0A">' . "\n";
|
|
}
|
|
add_action('wp_head', 'homeproz_theme_color_meta', 1);
|
|
|
|
/**
|
|
* Register custom block pattern category
|
|
*/
|
|
function homeproz_register_pattern_category() {
|
|
register_block_pattern_category(
|
|
'homeproz',
|
|
array(
|
|
'label' => __('HomeProz', 'homeproz'),
|
|
)
|
|
);
|
|
}
|
|
add_action('init', 'homeproz_register_pattern_category');
|
|
|
|
/**
|
|
* Register widget areas
|
|
*/
|
|
function homeproz_widgets_init() {
|
|
register_sidebar(array(
|
|
'name' => esc_html__('Blog Sidebar', 'homeproz'),
|
|
'id' => 'sidebar-blog',
|
|
'description' => esc_html__('Widgets for the blog sidebar.', 'homeproz'),
|
|
'before_widget' => '<section id="%1$s" class="widget %2$s">',
|
|
'after_widget' => '</section>',
|
|
'before_title' => '<h3 class="widget-title">',
|
|
'after_title' => '</h3>',
|
|
));
|
|
|
|
register_sidebar(array(
|
|
'name' => esc_html__('Footer Column 1', 'homeproz'),
|
|
'id' => 'footer-1',
|
|
'description' => esc_html__('First footer widget area.', 'homeproz'),
|
|
'before_widget' => '<div id="%1$s" class="widget %2$s">',
|
|
'after_widget' => '</div>',
|
|
'before_title' => '<h4 class="widget-title">',
|
|
'after_title' => '</h4>',
|
|
));
|
|
|
|
register_sidebar(array(
|
|
'name' => esc_html__('Footer Column 2', 'homeproz'),
|
|
'id' => 'footer-2',
|
|
'description' => esc_html__('Second footer widget area.', 'homeproz'),
|
|
'before_widget' => '<div id="%1$s" class="widget %2$s">',
|
|
'after_widget' => '</div>',
|
|
'before_title' => '<h4 class="widget-title">',
|
|
'after_title' => '</h4>',
|
|
));
|
|
|
|
register_sidebar(array(
|
|
'name' => esc_html__('Footer Column 3', 'homeproz'),
|
|
'id' => 'footer-3',
|
|
'description' => esc_html__('Third footer widget area.', 'homeproz'),
|
|
'before_widget' => '<div id="%1$s" class="widget %2$s">',
|
|
'after_widget' => '</div>',
|
|
'before_title' => '<h4 class="widget-title">',
|
|
'after_title' => '</h4>',
|
|
));
|
|
}
|
|
add_action('widgets_init', 'homeproz_widgets_init');
|