Changeset 3786703
- Timestamp:
- 11/05/2026 08:13:10 PM (22 hours ago)
- Location:
- personalseo-crosslinks-ihf/trunk
- Files:
-
- 4 edited
-
assets/crosslinks-lite-v10.js (modified) (2 diffs)
-
assets/crosslinks-lite-v9.js (modified) (1 diff)
-
personalseo-crosslinking.php (modified) (6 diffs)
-
readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
personalseo-crosslinks-ihf/trunk/assets/crosslinks-lite-v10.js
r3590439 r3786703 1 1 (function () { 2 window.__PSEO_LOADER_BUILD__ = 'lite-v10-wordpressorg-1.0. 2-20260627';2 window.__PSEO_LOADER_BUILD__ = 'lite-v10-wordpressorg-1.0.3-20261104'; 3 3 4 4 var cfg = window.IHF_CROSSLINKS_CONFIG || {}; … … 8 8 if (window[bootKey]) return; 9 9 window[bootKey] = true; 10 window.__PSEO_CROSSLINKS_BUILD__ = 'lite-plugin-v10-wordpressorg-1.0. 2-20260627';10 window.__PSEO_CROSSLINKS_BUILD__ = 'lite-plugin-v10-wordpressorg-1.0.3-20261104'; 11 11 window.__PSEO_CROSSLINKS_LINKS__ = window.__PSEO_CROSSLINKS_LINKS__ || 0; 12 12 -
personalseo-crosslinks-ihf/trunk/assets/crosslinks-lite-v9.js
r3590439 r3786703 1 1 (() => { 2 window.__PSEO_LOADER_BUILD__ = 'lite-v9-wordpressorg-1.0. 2-20260627';3 window.__PSEO_CROSSLINKS_BUILD__ = 'lite-plugin-v9-wordpressorg-1.0. 2-20260627';2 window.__PSEO_LOADER_BUILD__ = 'lite-v9-wordpressorg-1.0.3-20261104'; 3 window.__PSEO_CROSSLINKS_BUILD__ = 'lite-plugin-v9-wordpressorg-1.0.3-20261104'; 4 4 const cfg = window.IHF_CROSSLINKS_CONFIG || {}; 5 5 const norm = (s) => (s || '').toString().trim().replace(/\s+/g, ' '); -
personalseo-crosslinks-ihf/trunk/personalseo-crosslinking.php
r3590439 r3786703 2 2 /** 3 3 * Plugin Name: Personal SEO Crosslinking 4 * Plugin URI: https:// www.personalseo.com/4 * Plugin URI: https://personalseo.com/ihf-crosslinking-plugin/ 5 5 * Description: Adds internal crosslinks (City and ZIP) inside iHomefinder / Optima Express IDX listing pages. 6 * Version: 1.0. 26 * Version: 1.0.3 7 7 * Author: Personal SEO 8 8 * Author URI: https://www.personalseo.com … … 19 19 const OPT_ZIP = 'pseo_crosslinking_zip_links'; 20 20 const OPT_MISC = 'pseo_crosslinking_misc'; 21 22 const LITE_MAX_ENTRIES = 5;23 21 24 22 public function __construct() { … … 43 41 } 44 42 45 private function is_limit_reached() {46 $cities = $this->get_links(self::OPT_CITY);47 $zips = $this->get_links(self::OPT_ZIP);48 return (count($cities) + count($zips)) >= self::LITE_MAX_ENTRIES;49 }50 51 43 public function render_page() { 52 44 if (!current_user_can('manage_options')) return; … … 65 57 echo '<div class="notice notice-info" style="padding:14px;margin:14px 0;display:flex;gap:14px;align-items:center;">'; 66 58 echo '<div style="flex:1;">'; 67 echo '<div style="font-size:15px;font-weight:700;margin:0 0 4px;">Upgrade to Pro (Unlimited links + more link types)</div>';68 echo '<div style="margin:0;opacity:.9;"> Lite is limited to ' . esc_html(self::LITE_MAX_ENTRIES) . ' total entries across Cities + ZIPs.</div>';59 echo '<div style="font-size:15px;font-weight:700;margin:0 0 4px;">Upgrade to Pro for Advanced Internal Linking</div>'; 60 echo '<div style="margin:0;opacity:.9;"><p style="margin:0 0 8px;">Lite includes unlimited City and ZIP code crosslinks. Pro adds County, Subdivision, Community, and School crosslinks, plus an SEO-friendly section at the bottom of listing detail pages with additional internal links to relevant real estate pages.</p><p style="margin:0;">These links help search engines discover related pages and strengthen your website\'s internal linking structure.</p></div>'; 69 61 echo '</div>'; 70 62 echo '<a class="button button-primary" href="' . esc_url($upgrade_url) . '" target="_blank" rel="noopener">Upgrade to Pro</a>'; 71 63 echo '</div>'; 72 64 73 if (isset($_GET['limit']) && (string)$_GET['limit'] === '1') { // phpcs:ignore WordPress.Security.NonceVerification.Recommended74 echo '<div class="notice notice-error"><p>Lite limit reached (' . esc_html(self::LITE_MAX_ENTRIES) . '). Delete an entry or upgrade to Pro.</p></div>';75 }76 65 if (isset($_GET['updated']) && (string)$_GET['updated'] === '1') { // phpcs:ignore WordPress.Security.NonceVerification.Recommended 77 66 echo '<div class="notice notice-success is-dismissible"><p>Saved.</p></div>'; … … 224 213 225 214 $links = $this->get_links($opt); 226 $is_new = !isset($links[$key]);227 228 if ($is_new && $this->is_limit_reached()) {229 wp_safe_redirect(add_query_arg(['limit' => '1'], $redirect));230 exit;231 }232 233 215 $links[$key] = $url; 234 216 update_option($opt, $links, false); … … 319 301 : plugins_url('assets/crosslinks-lite-v10.js', __FILE__); 320 302 321 wp_register_script($handle, $src, [], '1.0. 2', true);303 wp_register_script($handle, $src, [], '1.0.3', true); 322 304 wp_localize_script($handle, 'IHF_CROSSLINKS_CONFIG', $config); 323 305 wp_enqueue_script($handle); -
personalseo-crosslinks-ihf/trunk/readme.txt
r3593297 r3786703 5 5 Tested up to: 7.0 6 6 Requires PHP: 7.4 7 Stable tag: 1.0. 27 Stable tag: 1.0.3 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html 10 10 11 Add City and ZIP internal links to iHomefinder / Optima Express IDX listing detailpages.11 Add internal crosslinks for City and ZIP details inside iHomefinder / Optima Express IDX listing pages. 12 12 13 13 == Description == 14 14 15 Personal SEO Crosslinking adds configurable internal links to iHomefinder / Optima Express IDX listing detail pages. The Lite version turns matching City and ZIP code details into links to your selected landing pages. 16 17 This is useful for real estate websites that have City pages, ZIP code pages, or other IDX landing pages and want an easier way to connect listing detail pages to those pages. 15 Personal SEO Crosslinking helps real estate sites improve internal linking by automatically turning listing address details (City and ZIP) into links to your landing pages. 18 16 19 17 Lite features: 20 21 18 * City crosslinks 22 19 * ZIP code crosslinks 23 * Supports IDX v9 and IDX v10 24 * Settings screen to choose the IDX version 25 * Limit of 5 total entries across Cities and ZIP Codes 26 * No license key required 20 * Supports IDX v9 and v10 (choose in Settings) 21 * Unlimited City and ZIP entries 27 22 28 P ro upgrade:23 PHP compatibility: Tested on a website running PHP 8.5. Minimum supported PHP version remains 7.4. 29 24 30 * Unlimited entries 31 * County crosslinks 32 * Subdivision crosslinks 33 * School crosslinks 34 * Additional link types for larger IDX SEO projects 35 36 Learn more about Pro: https://personalseo.com/ihf-crosslinking-plugin/ 25 Upgrade: 26 * Get Pro for additional link types (counties, subdivisions/communities, schools) 27 * Learn more: https://personalseo.com/ihf-crosslinking-plugin/ 37 28 38 29 == Installation == 39 30 40 1. Upload the plugin ZIP through WordPress Admin > Plugins > Add New > Upload Plugin.41 2. Activate the plugin .42 3. Go to WP Admin > PSEO Crosslinking .43 4. Add Cities and ZIP Codes with their target URLs.44 5. Go to Settings inside the plugin and choose IDX v9 or IDX v10.31 1. Upload the plugin ZIP via WordPress Admin > Plugins > Add New > Upload Plugin 32 2. Activate the plugin 33 3. Go to WP Admin > PSEO Crosslinking 34 4. Add Cities and ZIPs with their URLs 35 5. Set IDX version under Settings (v9 or v10) 45 36 46 37 == Frequently Asked Questions == 47 38 48 39 = Do I need a license key? = 49 50 No. The Lite version works without a license key. 51 52 = What does the Lite version include? = 53 54 Lite includes City and ZIP code crosslinks for iHomefinder / Optima Express IDX listing detail pages. Lite is limited to 5 total entries across Cities and ZIP Codes. 55 56 = Does Lite include County links? = 57 58 No. County, Subdivision, and School crosslinks are Pro features. 59 60 = What does the Pro version add? = 61 62 Pro removes the 5-entry limit and adds more link types, including County, Subdivision, and School crosslinks. 63 64 = Does this work with IDX v9 and IDX v10? = 65 66 Yes. The plugin includes a setting so you can choose IDX v9 or IDX v10. 67 68 = Does this plugin create IDX landing pages? = 69 70 No. This plugin adds links to existing City and ZIP code landing pages. You should create the target pages separately and then add their URLs inside the plugin settings. 71 72 = Where do the links appear? = 73 74 The links appear on supported iHomefinder / Optima Express listing detail pages when the plugin can detect matching City or ZIP code details in the IDX output. 75 76 = Why do I not see the links right away? = 77 78 Check that the City or ZIP value matches the IDX listing exactly, confirm the target URL is saved, and clear any site, page, CDN, or optimization cache. Also confirm the correct IDX version is selected in the plugin settings. 40 No. Lite works without a license key and supports unlimited City and ZIP entries. 79 41 80 42 == Changelog == 81 43 82 = 1.0.2 = 83 * Updated WordPress.org plugin assets. 84 * Confirmed Lite feature set: City and ZIP code crosslinks. 85 * Clarified Pro upgrade wording for Counties, Subdivisions, and Schools. 44 = 1.0.3 = 45 * Removed the five-entry limit for City and ZIP links. 46 * Updated Lite/Pro descriptions and frontend build markers. 47 * Preserved existing IDX v9 and v10 linking behavior and settings. 48 * Documented successful PHP 8.5 site testing. 86 49 87 50 = 1.0.1 = … … 91 54 92 55 = 1.0.0 = 93 * Initial Lite release with City and ZIP code crosslinks.56 * Initial Lite release (Cities + ZIPs)
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)