Files
homeproz/db_content_updates/2026-01-21_17-34_split-about-team-pages.md
T
root b6df4dbb92 Snapshot: MLS sync fixes, image refresh, plugin/theme updates
MLS plugin fixes from this session:
- Fix silent insert failures: location column NOT NULL was rejecting wpdb->insert calls,
  causing ~18k new properties since Dec 2025 to be lost. Inserts now build raw SQL
  with ST_PointFromText so the spatial column is populated atomically.
- Auto-refresh expired media URLs in MLS_Media_Handler::fetch_and_cache(), guarded by
  a property-level GET_LOCK so concurrent fetches share one API refresh.
- Normalize WP_Error to null in mls_get_property_image() so callers can rely on the
  documented string|null contract.
- Support comma-separated property_type filters in MLS_Query and MLS_Cluster so the
  homepage "View All Commercial" link (?property_type=Commercial+Sale,Land,Farm)
  actually filters correctly.
- Incremental sync now looks back 10 minutes past the latest modification timestamp
  as a safety margin against missed records.
- Smart sync exits silently (info-level, not warning) when a full sync is in progress.

Operational:
- New cron: weekly full sync Sundays at 3 AM (/usr/local/bin/mls-full-sync).
- New cron: hourly 2GB cap on mls-thumbnails/ and cache/transformed-images/
  (/usr/local/bin/mls-image-cache-cap).
- Logrotate config for wp-content/debug.log (2-day retention, daily rotation,
  delaycompress).

Repo policy:
- CLAUDE.md updated with explicit "commit everything except build artifacts" policy.
- .gitignore: untrack runtime image caches and debug.log rotations.

Other modifications in this snapshot are pre-existing in-flight theme/plugin/db_content_updates work.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 15:32:23 +00:00

131 lines
4.7 KiB
Markdown
Executable File

# Split About and Team Pages + Blog Menu
**Date**: 2026-01-21
**Type**: Page Template Split + New Page Creation + Menu Updates
**Status**: IMPLEMENTED IN DEV
## Summary
The About page has been split into two separate pages:
- **About Page** - Company story, additional WYSIWYG content area, and CTA
- **Team Page** - Agent grid, broker info, and CTA
Additionally:
- **Blog** added to navigation menu
- Blog templates updated to use consistent archive-hero styling
## Code Changes
- Created `page-team.php` - New Team Page template
- Modified `page-about.php` - Removed team/broker sections, added WYSIWYG content section
- Created `template-parts/content/content-team.scss` - Team page styles
- Updated `template-parts/content/content-about.scss` - Added styles for additional content section
- Updated `inc/template-functions.php` - Added Team_Page body class
- Updated `src/main.scss` - Added team SCSS import
- Updated `home.php` - Blog index uses archive-hero for consistency
- Updated `archive.php` - Category/tag archives use archive-hero for consistency
- Created `page-results.php` - Results Page template for sold properties
- Created `template-parts/content/content-results.scss` - Results page styles
## Database Changes (Already Applied in Dev)
The following changes were made directly to the dev database and need to be replicated in production:
### 1. Team Page Created
**Page ID**: 256
**Title**: Our Team
**Slug**: team
**Template**: page-team.php
```sql
-- Create page
INSERT INTO wp_posts (post_author, post_date, post_date_gmt, post_content, post_title, post_excerpt, post_status, comment_status, ping_status, post_name, post_type, post_modified, post_modified_gmt, to_ping, pinged, post_content_filtered)
VALUES (1, NOW(), UTC_TIMESTAMP(), '', 'Our Team', '', 'publish', 'closed', 'closed', 'team', 'page', NOW(), UTC_TIMESTAMP(), '', '', '');
-- Set page template (use the actual page ID from above)
INSERT INTO wp_postmeta (post_id, meta_key, meta_value) VALUES (LAST_INSERT_ID(), '_wp_page_template', 'page-team.php');
```
### 2. Menu Item Added to Primary Menu
Team added after About in the Primary Menu:
**Menu Order**:
1. Properties (0)
2. About (3)
3. Team (4) - NEW
4. Results (5) - NEW
5. Resources (6)
6. Blog (7) - NEW
7. Contact (8)
```sql
-- Shift existing items down (adjust IDs for production)
-- Resources menu item: update menu_order from 4 to 5
-- Contact menu item: update menu_order from 5 to 6
-- Create nav_menu_item for Team (adjust page ID for production)
INSERT INTO wp_posts (post_author, post_date, post_date_gmt, post_content, post_title, post_excerpt, post_status, comment_status, ping_status, post_name, post_type, menu_order, post_modified, post_modified_gmt, to_ping, pinged, post_content_filtered)
VALUES (1, NOW(), UTC_TIMESTAMP(), '', 'Team', '', 'publish', 'closed', 'closed', 'team-menu', 'nav_menu_item', 4, NOW(), UTC_TIMESTAMP(), '', '', '');
-- Add to Primary Menu term relationship
-- Add required meta: _menu_item_type, _menu_item_object_id, _menu_item_object, etc.
```
### 3. Blog Menu Item Added
Blog page (ID 9, already exists) added to Primary Menu.
### 4. Results Page Created
**Page ID**: 259
**Title**: Our Results
**Slug**: results
**Template**: page-results.php
Displays sold/closed properties from MLS sync and manual entries, sorted by close date (most recent first).
## Production Deployment Steps
1. Deploy code changes (theme files)
2. Run `npm run build` in theme directory
3. Either:
- **Option A**: Manually create Team page in WordPress admin, assign template, add to menu
- **Option B**: Run SQL statements above with adjusted IDs
### Manual Steps (Option A - Recommended)
1. Go to **Pages > Add New**
2. Title: `Our Team`
3. Slug: `team`
4. Template: **Team Page**
5. Publish
6. Go to **Appearance > Menus**
7. Select Primary Menu
8. Add "Our Team" page (set custom label to "Team")
9. Add "Blog" page
10. Order: Properties, About, Team, Resources, Blog, Contact
11. Save Menu
## Optional ACF Fields for Team Page
| Field | Default Value |
|-------|---------------|
| `hero_title` | "Our Team" |
| `hero_subtitle` | "A dedicated group of real estate professionals committed to your success." |
| `hero_background` | (none) |
| `broker_title` | "Broker Information" |
| `broker_text` | HomeProz broker details |
| `cta_title` | "Ready to Work With Us?" |
| `cta_text` | "Contact our team today..." |
| `cta_button_text` | "Get in Touch" |
| `cta_button_url` | /contact/ |
## Notes
- Agent ordering on Team page respects the `menu_order` field (drag-drop sortable in admin)
- Disabled agents are automatically excluded
- The About page retains its existing ACF fields