
內容簡介
Shift8 TREB Real Estate Listings 是一款全面的 WordPress 外掛,透過 PropTx RESO Web API 自動化導入和管理多倫多房地產委員會 (TREB) 的房地產列表,消除手動管理的需求,並自動擷取物件資料,創建格式正確的 WordPress 文章。
【主要功能】
• 自動同步 - 使用 WordPress cron 定期同步,頻率可配置
• PropTx RESO Web API 整合 - 安全的 Bearer token 認證及錯誤處理
• 無限制圖片導入 - 導入每個列表的所有可用照片
• 通用模板系統 - 與所有頁面編輯器相容
• Google 地圖整合 - 互動地圖及條件顯示
• 步行得分整合 - 提供物件的步行性評分
外掛標籤
開發者團隊
② 後台搜尋「Shift8 Real Estate Listings for TRREB」→ 直接安裝(推薦)
原文外掛簡介
Shift8 TREB Real Estate Listings is a comprehensive WordPress plugin that automates the process of importing and managing real estate listings from the Toronto Real Estate Board (TREB) via the PropTx RESO Web API. This plugin eliminates manual listing management by automatically fetching property data and creating properly formatted WordPress posts.
Read our detailed blog post about this plugin for technical insights, implementation details, and the story behind migrating from RETS to RESO Web API.
Key Features
Automated Synchronization – Scheduled sync using WordPress cron with configurable frequency
PropTx RESO Web API Integration – Secure Bearer token authentication with comprehensive error handling
Unlimited Image Import – Imports ALL available photos per listing with cross-hosting batch processing
Universal Template System – Compatible with all page builders (Visual Composer, Elementor, Gutenberg, Bricks)
Google Maps Integration – Interactive maps with free OpenStreetMap geocoding and conditional display
WalkScore Integration – Walkability scoring for properties
Member-Based Categorization – Automatic categorization based on agent membership
Geographic Filtering – Restrict listings by postal code prefix (FSA) or city name with autocomplete
Sold Listing Management – Automatically updates existing listings to sold status with title prefix and tags
WP-CLI Support – Full command-line interface for server management
Comprehensive Logging – Detailed logging system with admin interface
Perfect For
Real estate agencies using TREB/PropTx RESO Web API
Property management companies
Real estate agents and brokers
WordPress developers building real estate sites
Anyone needing automated MLS listing synchronization
Advanced Features
Incremental Synchronization – Uses ModificationTimestamp for efficient API usage
Batch Image Processing – Memory-aware processing with adaptive timeouts
Direct MLS Import – Import specific listings via WP-CLI
API Diagnostics – Raw API response analysis for troubleshooting
Geographic Filtering – Filter by postal code prefix (FSA) or city name, mutually exclusive via admin dropdown
Listing Preview – Preview API results via WP-CLI without creating posts
Sync Mode Management – Control over incremental vs age-based synchronization
Security Focused – All input sanitized, output escaped, encrypted credential storage
External Services
This plugin connects to several external services to provide real estate listing functionality:
PropTx RESO Web API (Toronto Real Estate Board)
– Purpose: Retrieves real estate listing data from the Toronto Real Estate Board (TREB) MLS system
– Data Sent: API authentication token, search parameters, listing filters
– When: During scheduled syncs and manual data imports
– Service Provider: PropTx RESO Web API (query.ampre.ca)
– Terms of Service: https://www.ampre.ca/terms-of-service
– Privacy Policy: https://www.ampre.ca/privacy-policy
OpenStreetMap Nominatim API
– Purpose: Geocodes property addresses to obtain latitude/longitude coordinates for mapping
– Data Sent: Property addresses (street, city, province, postal code)
– When: When processing new listings or updating existing ones
– Service Provider: OpenStreetMap Foundation (nominatim.openstreetmap.org)
– Usage Policy: https://operations.osmfoundation.org/policies/nominatim/
– Privacy Policy: https://wiki.osmfoundation.org/wiki/Privacy_Policy
Google Maps API (Optional)
– Purpose: Displays interactive maps for property locations
– Data Sent: Property coordinates, API key
– When: When viewing individual listing pages (if Google Maps API key is configured)
– Service Provider: Google LLC
– Terms of Service: https://developers.google.com/maps/terms
– Privacy Policy: https://policies.google.com/privacy
WalkScore API (Optional)
– Purpose: Displays walkability scores and neighborhood information
– Data Sent: Property address, WalkScore ID
– When: When viewing individual listing pages (if WalkScore credentials are configured)
– Service Provider: WalkScore.com
– Terms of Service: https://www.walkscore.com/terms-of-use/
– Privacy Policy: https://www.walkscore.com/privacy/
All external service connections are made server-to-server and do not directly collect visitor data. Property addresses and coordinates are only sent to mapping services when explicitly configured by the site administrator.
WP-CLI Reference
All commands are registered under wp shift8-treb. WP-CLI must be installed on the server.
wp shift8-treb sync
Run a manual sync of TREB listings from the PropTx RESO Web API.
Options:
--dry-run – Run without creating or updating any posts.
--verbose – Show detailed output including settings, sample data, and progress.
--limit=
--force – Force sync even if the bearer token is not configured.
--listing-age=
--mls=
--members-only – Sync only listings from configured member IDs. Applies filter at API level.
--postal-prefix=
--city=
--skip-images – Skip image downloads for faster sync. Stores external URLs only.
--sequential-images – Use sequential image processing instead of batch. Slower but more compatible.
Examples:
wp shift8-treb sync
wp shift8-treb sync --dry-run --verbose
wp shift8-treb sync --listing-age=7 --limit=50
wp shift8-treb sync --mls=W12436591,C12380184
wp shift8-treb sync --members-only --skip-images
wp shift8-treb sync --postal-prefix=M5V,M6H
wp shift8-treb sync --city="Brampton,Oakville" --limit=20
wp shift8-treb preview
Query the API and display a summary of matching listings without creating any posts. Output includes price range and median, city breakdown, property type breakdown, and top agents.
Options:
--limit=
--listing-age=
--members-only – Only show listings from configured member IDs.
--postal-prefix=
--city=
--format=
Examples:
wp shift8-treb preview
wp shift8-treb preview --postal-prefix=M5V,M6H,M8X
wp shift8-treb preview --city="Toronto W08,Mississauga"
wp shift8-treb preview --limit=20 --members-only
wp shift8-treb preview --format=json
wp shift8-treb analyze
Fetch raw API data for diagnostic analysis. Supports searching for specific MLS numbers and showing agent breakdowns. No posts are created.
Options:
--limit=
--search=
--show-agents – Show unique agent IDs and their listing counts.
--days=
--members-only – Only analyze listings from configured member IDs.
--postal-prefix=
--city=
Examples:
wp shift8-treb analyze --limit=100 --show-agents
wp shift8-treb analyze --search=W12436591,C12380184
wp shift8-treb analyze --days=30 --limit=200
wp shift8-treb analyze --city="Mississauga" --days=30
wp shift8-treb settings
Display current plugin configuration. Sensitive values such as the bearer token are masked.
Options:
--format=
Examples:
wp shift8-treb settings
wp shift8-treb settings --format=json
wp shift8-treb test_api
Test the PropTx RESO Web API connection using the configured bearer token.
No options. Example:
wp shift8-treb test_api
wp shift8-treb test_media
Test the Media API for a specific listing. Shows available photos with URLs, types, order, and preferred photo status.
Arguments:
Options:
--raw – Show the full raw JSON API response.
Examples:
wp shift8-treb test_media W12438713
wp shift8-treb test_media W12438713 --raw
wp shift8-treb sync_status
Show current sync mode (incremental or age-based), last sync timestamp, and relevant settings.
No options. Example:
wp shift8-treb sync_status
wp shift8-treb reset_sync
Reset the incremental sync timestamp. Forces next sync to use age-based filtering, re-importing listings that may have been deleted locally.
Options:
--yes – Skip the confirmation prompt.
Examples:
wp shift8-treb reset_sync
wp shift8-treb reset_sync --yes
wp shift8-treb clear_logs
Clear all plugin sync logs.
Options:
--yes – Skip the confirmation prompt.
Examples:
wp shift8-treb clear_logs
wp shift8-treb clear_logs --yes
wp shift8-treb retry-images
Retry downloading failed images for posts that have stored external image references. Draft posts are auto-published if the retry succeeds.
Options:
--limit=
--dry-run – Show what would be processed without downloading.
--status=
Examples:
wp shift8-treb retry-images
wp shift8-treb retry-images --dry-run
wp shift8-treb retry-images --status=draft
wp shift8-treb retry-images --limit=10
Technical Requirements
* WordPress 5.0 or higher
* PHP 7.4 or higher
* cURL extension for API communication
* Write permissions for wp-content/uploads directory
* Valid PropTx RESO Web API bearer token
Support
For support, documentation, and updates, visit the plugin’s GitHub repository or contact Shift8 Web.
Privacy Policy
This plugin connects to the PropTx RESO Web API to retrieve real estate listing data. No personal data is transmitted to external services beyond what is necessary for API authentication and data retrieval. All API credentials are encrypted and stored securely in your WordPress database.
Credits
Developed by Shift8 Web for integration with the PropTx RESO Web API and Toronto Real Estate Board listing management.
