A set of Z-Blog sites can establish multiple city sub-stations. Beijing, Shanghai, Guangzhou and other cities can have their own independent access portals, independent content ranges and independent homepage configurations; only one set of backstage, classification trees and daily operation processes is maintained.
Select the city where the article is published, and the content can be displayed in the corresponding sub-station. It is suitable for local services, chain investment promotion, regional information, real estate, automobiles, recruitment, training, and other businesses that need to operate the "city + industry/service" content entrance for a long time.
It is not necessary to rebuild the website for each city:One background can manage the city entrance, article attribution and content operation uniformly, and focus on the truly valuable local content.
Why do you need a city branch station?
In early 2026, GEO was a hot topic in webmaster circles. A promotional friend suggested that I develop a tool to automatically publish GEO content on self-media platforms; I was working on the naming project at the time, so I didn't start it.
Later, my friend reminded me that automatic distribution products have become very homogeneous, and the effect is becoming more and more difficult to guarantee. What is really worth long-term operation is to establish stable entry and content city branches around the region. He also observed that inbean bagIn scenarios where AI tools recommend goods or services to specific regions, sites with clear city entrances are more likely to meet regional needs.
Based on this judgment, I completed and launched the city branch plug-in in June 2026. Its goal is simple: to enable local businesses to establish clear and sustainable content portals for different cities without duplicating the website over and over again.
The more cities there are, the more unified management is required.The plug-in maintains the city, article, entrance, and content scope in the same set of background, which is suitable for first launching a small number of cities to verify the effect, and then gradually expanding to more regions.
What can it do for you?
Every city has its own entrance
Each city can be bound /beijing/ Such subdirectories can also be bound to second-level or independent domains. Articles, categories, tags, and search results are filtered by current city, so that content from different cities is no longer mixed.
Error access automatically returns to the correct location
When visitors access city-specific articles from the wrong city entrance, they will automatically jump to the correct city; cities that do not have articles to display will also automatically return to the main station to avoid city substations becoming empty shell pages.
With more cities, maintenance is still simple
Support batch import of cities, batch setting of city URLs and homepage configurations, and also support txt batch import of articles and batch adjustment of article city attribution. Make a city first, and then expand to more regions, there is no need to repeatedly build the background.
No need to modify the theme file:Plug-ins are accessed through Z-Blog native hooks and provide bottom-up processing of common theme scenarios, allowing city functions to be centrally maintained in plug-ins.
SEO search optimization
The city homepage SEO is independently configured, and each city sets the homepage title, keywords and description separately. Different title templates can be used for article pages, category pages and city homepages. Make the city page more clearly express the local service theme. Standardize address automatic processing, and the city page automatically outputs the canonical of the current entrance. Cross-city access automatically jumps to the city to which the article belongs. Reduce the situation of multiple addresses competing for the same content at the same time. The site map is centrally managed, and the national main station and the enabled city generate a standard site map. sitemap-index.xml Unified index of all map entrances. Static sharding generation, reducing the dynamic burden of search engine access.
GEO Regional Operations
City content belongs to its own place, and each city can bind subdirectories, second-level domains or independent domain name entries. City-specific articles are only displayed in the city they belong to. Categories, tags and search results are filtered with the current city. Let visitors see content related to their region first. Visitors find the target city faster. The front desk switcher supports keyword search and A-Z letter index. Automatically hide cities without articles to reduce invalid clicks. Optional to turn on IP city recommendations, and only light prompts are displayed. After the user actively selects, it will be remembered and will not be disturbed repeatedly.
Don't worry if you don't configure it:If you need to set up the city entrance and configuration after purchasepseudo-staticBinding an independent domain name or accessing a theme, the author can book a free one-to-one assistance. Instead of just providing tutorials for you to explore on your own, it is usually more time-saving and efficient to complete the configuration directly according to your website.
City sub-stations usually grow with the number of cities, content scale and business scope, so the product value goes beyond the first installation. The plug-in is based on original development, free background experience, one-click import of demo data, continuous version maintenance and after-sales support, allowing users to confirm the adaptation first, and then rest assured to use it for long-term operation.
Original development with clear functional boundaries
Independent development around Z-BlogPHP multi-city operation scenariosDoes not rely on assembled third-party functional modulesRouting, content filtering, sitemaps, and caching are handled by the same set of logicFollow-up maintenance and problem positioning are clearer
Free trial, try before you decide
Demo website background can be provided for users to view and testExperience the city management, article attribution, and front desk switching process firsthandBefore purchasing, confirm whether the background operation conforms to the usage habitsReduce the risk of judging fit based solely on functional descriptions
Import demo data with one click to get started quickly
Built-in cities, categories, tags, and model articlesOne-click import can quickly see the full city sub-station effectEasily grasp common usages such as city management, content attribution, and switchers with real-world examplesDemonstration data supports one-click cleaning, making it easy to start official operations
Stable updates and compatibility fixes
Continuous iteration of city operations, SEO, and GEO-related capabilitiesFollow up on Z-BlogPHP and PHP environment compatibilityKnown issues are clearly logged through the version logIssues affecting normal access, data and inclusion will be prioritized
After-sales support and usage assistance
Provide installation, configuration and function usage consultationCan communicate via QQ, WeChat or remote assistanceProvide troubleshooting suggestions for common deployment issues such as city entry, pseudo-static and independent domain namesHelp users complete online and follow-up maintenance faster
One purchase, long-term reuse
Unlimited number of built websitesUnlimited number of citiesno mandatory subscriptionSuitable for studio delivery, chain brands, and expanding regional operations
specific function
City entrance, content ownership, batch operation and cache are configured separately to solve the practical problems of multi-city sites
City substations are not a single URL rewrite. The plug-in breaks down city entry, article attribution, list filtering, cross-city jumping, tag policy, back-end batch tools, and cache management into independent capabilities that can be enabled by actual operation stage.
core
The city where the article belongs
Select the city directly when editing an articleSelect "National (unlimited cities) " and display it as public content.The page is visible to the whole site by default, and does not participate in city article filteringCity fields are saved with the article, no need to maintain a copy of the content
core
City entrance and access address
Supported subdirectories: example.com/beijing/Support for independent and second-level domainsEach city can choose HTTP or HTTPS individually.Support query parameters to cover the bottom, and automatically generate pinyin slug when the subdirectory is not filled in.
core
city content filtering
Home, Category, Tag, Author, Date Archive, and Search Filter by current cityTotal Pages Synchronized Recalculated by CitySidebar widgets and related articles will also inherit city limitsDbSql is compatible with third-party plugins to read articles directly SQL
core
Cross-city visit and empty city processing
Automatic 302 when accessing exclusive articles for other citiesJump targets are generated by subdirectories or independent domain names for that cityCities with no articles to display automatically jump back to the main siteAvoid erroneous content and empty pages that continue to be accessed
recommend
Batch maintenance of city inventory
Support the batch import of cities from administrative regions across the countryCity slogans, independent URLs and homepage configurations can be set in batchesBatch generation of second-level domain names by pinyin, root domain name and business wordsThe city list is displayed in pages and supports exporting city entrances
new
Bulk import of articles
Upload txt or paste text to create articles in bulkTitle, body, and labels are formatted in clear key-value pairsUniformly set the city, category, status, author, publication time, and intervalLabels can be created automatically, and the relevant cache can be automatically cleaned after completion
recommend
Batch modification of articles
Filter by article ID, category, current city, status, and authorPreview hit articles before making changesThe city can be changed in batchesCan be set to national public content with one click
advanced
Label display strategy
Option to segregate tabs by city or aggregate to master stationWhen quarantined, the tab page only displays articles in this city.When aggregating, the label weight is concentrated on the main stationAfter aggregation, the city label address will automatically return to the main station.
performance
Full page HTML cache management
File, APCu, Memcached, Redis four backend optionsSupport site-wide, city-by-city, URL cleaning and homepage preheatingLogin, preview, POST, search, API, and non-HTML responses are not cachedAutomatic downgrade to file cache when backend is unavailable
SEO search optimization
Solve the problems of standardized address, inclusion entrance, crawling efficiency and page title management of multi-entry sites
SEO focuses on whether search engines can crawl, understand, and correctly index pages. City sub-stations have multiple access points, so the plug-in handles the title, page description, canonical, jump, and sitemap independently, so that each receivable page retains a clear and standardized address.
core
Global Title Template
Article page, category page and city homepage are set with title templates respectivelySupports placeholders such as {city}, {category}, {article title}, {site name}, etcA rule covers similar pagesUnify brand words and title structure
core
City Home Independent SEO Three-piece Set
Each city sets the homepage title, keywords and description separatelyCity-level settings take precedence over global city homepage templatesBatch settings use block text formattingConfiguration is saved independently to avoid legacy database character set limitations
core
Canonical address
City home page, list page and article page are automatically written to the current entry canonicalCross-city articles go directly to the entrance of the city they belong toAvoid competing multiple access addressesIndependent domain name cities generate standardized addresses according to their own agreements
professional
static sitemap
Sitemap.xml is available on the national main site and in every active city.Sitemap-index.xml automatically summarizes all mapsStatic XML sharding that does not scan the database when accessed by search enginesSupport for full builds, pending updates, pauses, resumes, and atomic replacements
recommend
Robots.txt assisted maintenance
The background can directly copy the sitemap address.When robots.txt does not exist in the root directory, basic rules can be generated with one clickExisting robots.txt will not be overwrittenEasy to submit sitemap index address
Search within the city limits
Search within the city entrance only returns the content of the city and the whole countryThe independent domain search form is submitted within the current domain nameAvoid results from jumping to unrelated city entrancesSearch results are consistent with the city's content range
GEO Regional Operations
Make clear connections between cities, content, portals, and visitor choices to form a long-term scalable local content space
GEO focuses on whether the content and the user correspond to the location. Plugins don't just add a city name to the article, but establish a recognizable access point for the city, a controllable content range, and an actionable user switching path, which is convenient for continuous operation around "city + industry + service".
core
A clear entrance to each city
City bindable independent subdirectoriesYou can also bind an independent domain name or a second-level domain name.The entry can set the protocol separately according to the actual deploymentA set of background can mix and manage different entry modes
core
The content of this city only serves visitors to this city
City-specific articles will not appear in the list of other citiesNational public articles are available to serve all citiesCategory, tag, author, and date archive inherit current city limitsDifferent cities can independently build content pools
recommend
Front desk city switcher
The floating entrance in the lower right corner is provided by default.Supports urban keyword search and A-Z alphabetical indexAutomatically hide cities without articlesYou can inject the theme navigation bar, or you can put it into the template by yourself through auxiliary functions
optional
IP city recommendation
Off by default, on demandSupport downloading qqwry offline IP libraryWhen visiting the main site for the first time, the city recommendation prompt is displayed, and no jump is forced.After the user manually switches, the selection is remembered through cookies
advanced
Batch promotion of urban operation
After introducing into the city in batches, the entrance rules can be uniformly supplementedYou can import basic articles from designated cities in batchesExisting article cities can be adjusted in batches according to the filtering conditionsImport and export for easy delivery, inspection and handover
Compatibility, security and operation
Keep the page consistency after theme compatibility, cache isolation and background changes separately
The failure of multi-city sites often comes from serial site cache, incompatible third-party themes or old pages after batch operation. The plug-in has designed independent isolation rules, automatic invalidation mechanism and background operation protection for these high-frequency problems.
safety
Cache segregated by city
The cache key also distinguishes between host, original request URI, and city codeSubdirectories and independent domains do not share the same page cacheDo not write the full page cache when turning on IP recommendations to avoid personalized prompts being seen by other visitorsAutomatically downgrade file cache when the cache backend is abnormal
recommend
Automatically keep the page consistent after batch operation
Automatically clean the cache after batch import and batch modification of articlesCity entrance and city SEO changes will mark relevant sitemaps to be updatedSaving and deleting content will invalidate the associated city pageReduce the probability that visitors will continue to see old content
safety
Cache warm-up limits in-app targets
Warm-up request does not directly trust request HostDisable cURL from automatically following redirectsOnly preheat the verified city entrance of this stationAvoid background warm-ups being used to access non-local addresses
Collaborate with other caching plugins
Export the current city global variable for other cache schemes to concatenate key namesIt is convenient for caching plugins such as zCache to identify the current cityReduce the risk of third-party full-page caches generating serial sitesDoes not rely on Composer or additional PHP frameworks
new
demo data one-click trial
Built-in cities, categories, tags, and model articlesQuickly check city routing and foreground effects after importWhen cleaning, only the actual newly created demo label will be processed.Retain content that is later used in real articles to reduce the risk of accidental deletion
applicable scenario
Businesses suitable for organizing content by region, undertaking consulting, or building local service portals
As long as users will find information in "city + industry/service/product", city sub-stations can become a long-term operable content structure. Different cities can share brands, classifications and backends, and then gradually add exclusive content according to the business progress.
Local life and services
Renovation, housekeeping, maintenanceWedding, photography, confinementMoving, dry cleaning, trainingEach city can build its own service introduction and case content
Merchants franchise and chain brands
Headquarters station and city entrance share a backstageCity landing pages can be configured separatelyNational public content does not have to be published repeatedlyThe consultation entrance can be gradually expanded by region
Regional Information and Content Portal
Local news, events, exhibitions, travel tipsCity-specific content and national columns coexistDifferent cities can gradually go online according to content adequacyVisitors can actively switch cities to read
Real estate, automobiles, and recruitment
Real estate, second-hand housing, car dealers, quotationsLocal job opportunities, training and recruitment informationSegregate content by city to avoid information confusionSuitable for continuously adding cities and long-tail pages
Environmental requirements
Before installation, confirm the pseudo-static, operating environment and independent domain name resolution to start configuring the city entrance
Plugins have fewer native dependencies, but both city subdirectories and stand-alone domain access rely on correct server routing settings. It is recommended to use a city to complete entry and content testing before scaling in batches.
core
Z-BlogPHP and PHP versions
Requires Z-BlogPHP 1.7.5 or higherRequires PHP 8.0 or higherNative PHP implementation with no Composer dependenciesCompatible with Z-BlogPHP 1.7 series
core
Pseudo-static must be enabled
Enable pseudo-static in background global settingsCity routing will not be enabled when not enabledACTIVE Dynamic Mode IncompatibilityIt is recommended to confirm that the master station pseudo-static link can be accessed normally first.
recommend
Independent domain names require server resolution
Subdomains or independent domains need to be resolved to the same site directoryNginx or Apache needs to receive the corresponding server nameThere is usually no need to rewrite rules for each cityHTTPS cities also need to deploy matching certificates on the server
continuous iteration
Planned capacity and maintenance commitment
One purchase, long-term updates. The next version will add the city single page function to further enrich the content handling capacity of city sub-stations.
Next Version: City Single Page Feature
A single-page content portal for each cityCity descriptions, service descriptions, and local information can be supplementedEnriching the form of content acceptance of urban sub-stationsIt is convenient to continuously improve the page content by city
Follow-up: IP recognition enhancements
IP2Region offline library supportthird-party IP API chain fallbackMulti-Provider Automatic Downgrading
Next Version: Substation Statistics and Operations
visit statistics per cityUrban sub-station health dashboardSmarter empty city judgments
continuous maintenance
Function iteration and compatibility repairQQ/WeChat/Remote AssistanceBug priority
One purchase unlimited site
Unlimited number of built websitesUnlimited number of citiesno mandatory subscription
Reconstruct the city website map, optimize batch import articles and city entrance export
repairFixed the problem that the title/tags line contains UTF-8 BOM when importing articles in batches, resulting in the title not being recognized.
otherThe city entrance exports the new city list and city + URL in two formats, and the city and URL are separated by ===.
newAdded a separate "sitemap" management page, the national main station and each city entrance are provided with standard sitemap.xml, and are uniformly indexed by sitemap-index.xml.
newThe sitemap is changed to static XML sharding and persistent generation tasks, with support for full generation, items to be updated, pause, continue, atomic substitution, and optional APCu inventory caching; the database is no longer dynamically scanned when accessed by search engines.
newContent saving, deletion and city entrance configuration changes will mark the relevant map to be updated; add robots.txt map link copy and one-click generation of Z-Blog basic rules when there is no file in the root directory, and existing files will not be overwritten.
202607-22
v1.0.9
Fix known issues: Batch setting city SEO causes city inventory to be cleared, city deletion CSRF to fail, demo data cleaning mistakenly deletes user tags and categories, data consistency between full page cache and batch operations, etc
repairRewrite the city home page SEO storage and batch modification process: title, keywords, description is changed to atomic write zb_users/data/fui_citysubsite/city-seo.json, no longer writes the city_Seo * column of the historical city table, completely bypassing the MySQL 1366 caused by the exception of the old station database column character set; batch SEO only updates independent SEO files, no longer rewrites the city list in full, and the existing database SEO data will be automatically inherited when written for the first time. In addition, fix the lack of UTF-8 mode in the field resolution regular, split the Chinese full-width colon into single bytes and write the incomplete bytes to the title, resulting in JSON encoding failure.
repairFixed an issue where MySQL 1364 refused to insert historical SEO columns such as the city_SeoDescription of the old city table when adding or saving a single city was NOT NULL and had no default value. When saving a city, only ASCII empty space values are written to these abandoned columns to meet the old table constraints; the real SEO content is still only written to the independent city-seo.json and will not be affected by the database character set again.
otherCity-independent URLs add HTTP/HTTPS protocol selection per city. Single addition, editing, and batch automatic generation of second-level domains all require users to clearly select the protocol; redirects, city switching links, sitemaps, cache warm-up, and export entry URLs are all generated according to the actual protocol of the city. After the old city is upgraded, the previous behavior of fixing HTTPS can be changed to HTTP according to the actual deployment on the edit page. Batch setting city-independent URLs are changed to "city name == http://domain name" or "city name == https://domain name" format, and non-empty URLs must carry the protocol.
otherAutomatically add the independent second-level domain name of the city in batches. Add the "Peel off the first-level subdomain name of the current master" switch, which is turned on by default. Take blog.hnysnet.com as an example, generate {slug} .hnysnet.com or beijing-business word.hnysnet.com when turned on; generate {slug} .blog.hnysnet.com or beijing-business word.blog.hnysnet.com when turned off. The protocol drop-down unifies the two independent domain name rules, and no longer only displays the protocol preview in the business word combination option.
repairFix the problem that the keywords and descriptions on the homepage of the city sub-station do not take effect after setting: some themes will be recalculated and overwritten in the template rendering stage, and now the meta of the same name of the theme will be removed in the head of the final HTML and injected into the city-level configuration to ensure that cross-themes take effect and do not generate duplicate tags; after saving the city SEO, the whole page cache will be cleared synchronously.
repairFixed the problem that the "Delete City" operation was rejected due to the GET link on the front end but the server level requiring CSRF Token. Delete is changed to POST form submission with csrfToken.
repairFix the problem that "Clear Demo Data" will accidentally delete the existing label with the same name before the import (the demo import reuses the existing label but records its ID), and only record the actual newly created label this time; at the same time, if there are still articles in the demo category, keep the category to avoid reclassifying the real articles that users later put into the default category.
repairFixed an issue where batch importing articles, batch modifying article cities, and importing/clearing demo data without invalidating the full-page HTML cache caused visitors to continue seeing old content, which now automatically empties the full-page cache when completed.
repairFix the problem that the whole page cache is not isolated by guest cookie/IP when turning on IP automatic switching, resulting in a visitor's personalized city recommendation prompt being cached and displayed to other visitors. No longer write to the whole page cache when turning on IP automatic switching.
repairFixed an issue where the "Cross-Subdomain Cookie Sharing" configuration allowed ports to cause the browser to silently reject cookies, and the validation rule no longer accepts ports.
otherTighten cache warm-up endpoint SSRF protection: no longer add request hosts directly to the allowed list, and disable cURL automatic follow redirection to avoid warm-up requests triggered by restricted administrators being redirected to non-local destinations.
newNew national sitemap index (sitemap.php? index = 1), automatically lists the national main sitemap and the sitemap of all enabled cities; the basic settings page provides the index address that can be directly submitted to the search engine.
202607-20
v1.0.8
Added full-page HTML cache management (file/APCu/Memcached/Redis four-file backend can be switched); added tag by city isolator; city list supports paging
newAdded "Cache Management" page (City Branch - > Cache Management): Implement full-page HTML caching. When an unlogged visitor visits the city homepage/category/tag/article details page, the hit cache directly returns the final HTML, skipping all database queries, URL rewriting and template compilation. QPS can be improved by 1-2 orders of magnitude, effectively solving the problem of server overload and 502 error caused by a large number of articles.
newCache management supports four storage backends to switch freely from the background: A. File cache (default, zero dependencies, 100% compatibility); B. APCu (official PHP extension, shared memory hit < 0.5ms, 10-100 times faster than file); C1.Memcached/C2.Redis (independent service, supports multi-machine sharing, suitable for load balanced deployment). Another "automatic" option is provided. Press APCu- > Redis- > Memcached- > File to detect sequentially. Memcached/Redis connection failure is automatically downgraded to file cache.
newCache refresh supports three granularities: one-click emptying of the whole site, emptying by city, and refreshing by URL; and provides one-click function of "preheating the homepage of each city" (AJAX visits the homepage of each city one by one to trigger cache generation). Article saving/deletion automatically invalidates the homepage of the city + details page + category page + related cache of the homepage of the national main station.
newCache security policy: login users, preview mode, POST requests, search results, subscriptions, APIs, whitelist paths will not be cached; non-200 responses, non-text/html content will not be written to the cache; cache keys are based on host + original request URI + city code triple isolation to avoid key bumping in subdirectory mode.
newBasic Settings - Advanced Settings Added "Label Isolation by City" switch: When turned on (default), the label link under the city sub-station has the current city prefix, and the label list page only displays the articles of the current city, and the local SEO signal is the purest; when turned off, the label link uniformly points to the main station to bind the domain name, and the label list page displays all articles under the label. It is suitable for scenarios where you want the label weight to be concentrated on the main station or the label content of each city is too small and needs to be aggregated. After closing, directly accessing the label URL of the sub-station will automatically 302 to the main
otherThe city list supports pagination, with a maximum of 50 cities displayed on each page, and pagination navigation is provided at the top and bottom; the number of articles is changed to only count the cities on the current page to avoid a large number of COUNT queries being executed in the background when there are many cities.
202607-15
v1.0.7
Added batch setting city homepage SEO; batch setting city slogan/domain name/SEO supports uploading txt files
newCity List Page Added "Batch Set City Home SEO" function: use block multi-line format (###city name, starting with a block), support, title:/keyword:/description: three field tags (both Chinese and English), fields can be omitted (retain the original value) or left blank (empty), description can span multiple lines; city name supports name, code, with "city" suffix and other writing methods.
new"Batch Set City Slogan" "Batch Set City Domain Name" "Batch Set City Home SEO" All three forms have new txt file upload support: form plus enctype = multipart/form-data and file selection button, you can upload txt files or paste them into the text box, choose one of the two (upload files first). Avoid large files being restricted by browser or PHP input.
202607-10
v1.0.6
Added article management (batch import + batch modification); article editor-level city selector + Z-Blog comes with a time selector
newAdded "Article Management" page (City Substation → Article Management), including two function pages of "Batch Import" and "Batch Modification", which display batch import by default.
newBatch import: Upload txt files or paste text to create articles in batches, each article only needs title + body, labels are optional; city, category, status, author, publication date and interval can be set uniformly.
newBatch modification: Support filtering articles by article ID, category, current city, status, author, etc., preview and confirm first, and then modify the city in batches. You can also set the batch to "National" to make the article visible in all sub-stations.
202607-05
v1.0.5
Batch addition of cities Added "business word combination domain name" mode; city list entrance URL supports clicking on the new tab page to access
newAdd cities in batches - use the default independent second-level domain name to add the "business word combination" option: you can insert custom business words between the slug and the root domain name to generate {slug} - {business word} .root domain name, or {business word} - {slug} .root domain name; support selection of prefix/suffix location, real-time preview. It is suitable for leaving the pure city second-level domain name (such as beijing.example.com) to other projects, and the city sub-station uses the second-level domain name with business words (such as beijing-wangzhanjianshe.example.com) instead.
newCity list entry URL column (entry type + entrance) changed to clickable link, target = _blank directly access the corresponding city front-end page in the new tab; including rel = noopener noreferrer security attribute.
202607-01
v1.0.4
Improved navigation bar injection compatibility: precisely match the main menu container with back-end navigation markers
otherThe navigation bar injection switch button is changed to the back-end tag + front-end matching mode: PHP side reads the li id tag (navbar-page- */navbar-category- */navbar-tag- *) in the Z-Blog navigation bar module (navbar) and writes it to data-nav-markers; the front-end preferentially matches the main navigation ul by tag to avoid accidental injection into non-main navigation lists such as login/registration.
otherWhen there are multiple UL lists with similar classes in the theme (e.g. duplicate navbar containers), the front-end preferentially selects the container with the most navbar- * marks in the direct child li, and skips the sub-menu list nested in the parent li, which greatly reduces the probability of mismatching old themes.
otherThe navigation bar selector defaults already include .navbar ul in the candidate range, and most topics can be injected correctly without manual filling.
202606-29
v1.0.3
Fix known issues
repairFix the problem that the log_geo_City field is not correctly written after selecting the city on the article editing page; the editor adds a hidden field of name = City, and the front-end synchronizes the final city code in real time to ensure that Z-Blog automatically drops the library through the datainfo mapping.
202606-28
v1.0.2
Fix alias fetch method does not exist, resulting in 512 error; page details page jump boundary fixed
repairFix the GetPostByAlias method that does not exist in the cross-city inspection of ViewPost, change it to be compatible with the GetPostList alias query of Z-Blog 1.7.5 (log_Alias/log_Title/log_ID), and eliminate [Error] (512) ZBlogPHP unknown method or property error.
repairThe page details page (log_Type = 1) is marked by posttype in advance is_page_view and short-circuited back, no longer by mistake across the city jumping logic, to ensure that the page canonical correctly points to the national main station.
202606-26
v1.0.1
Remove default city function; fix URL rewriting and search routing; city switcher style dark mode compatibility
repairFull page URL rewrite (ob_start cover) fix: Relative path links are no longer incorrectly rewritten as city subdirectory prefixes, avoiding image/resource 404.
repairIndependent domain name branch search form and link uniformly point to the root domain /search.php (same domain submission) to avoid cross-domain jump and abnormal search results.
otherThe city switcher CSS is fully reconstructed into a tokenized variable system (--fui-cs- *), and the switcher itself explicitly locks the light color style, which is not polluted by the host theme's dark/night mode global rules.
otherCompatible with FinchUI series theme dark mode (body.fui-dark): Seamless dark switching through variable overlay, including pop-up cards, search boxes, alphabetical indexes, city lists, and IP prompt bars.
otherThe color scheme aligns with the FinchUI theme style: the main color is changed to #0069cc, replacing the old version of #1d4c7d; the font stack, border color, and shadow are all consistent with the FinchUI design system.
202606-18
v1.0.0
First release, support article by city attribution, subdirectory/independent domain substation, IP recommendation, SEO title template
newThe article editing page has added the "City to which you belong" selection, and supports the "National (unlimited cities) " option; articles from selected cities are only displayed in the corresponding substations, and articles from unselected cities are displayed as public content in all substations.
newThe "City Substation Management" page in the background can maintain a city list: each city can bind an independent subdirectory or an independent access URL (including a second-level domain name), and automatically generate a pinyin slug according to the Chinese name of the city when the subdirectory is not filled.
newVisit the /bj/, bj.example.com and other city sub-station entrance, the article list and single check only show the current city content; cross-city access article 302 redirected to the correct city; empty city sub-station 302 to the root domain home.
newThe search form and links are automatically rewritten to the root domain /search.php? q = xxx & fui_cs_city = {code}, the search results are filtered by city and the sub-station logo is displayed in the title.
newBuilt-in IP library (qqwry/ip2region) and configurable multiple third-party IP APIs; sub-site recommendations are given by IP when the root domain name is accessed for the first time (lightweight prompt bar, no forced jump); cookie records are manually selected after the user actively switches, and are no longer overwritten by IP.
newGlobal SEO title template: Configure the < title > structure of the article page, category page, and city homepage respectively, and support placeholders such as {city} {category} {article title} {site name}.
newCity-level homepage SEO: Each city can set independent homepage SEO titles, keywords, and descriptions, which are only effective for the city's homepage, with priority higher than the global template.
newEach city page is automatically injected with canonical; provides a sitemap.xml filtered by city.
newFloating city switcher: automatic injection in the lower right corner, supports three modes of jumping by domain name/subdirectory/query; custom embedding can be fui_citysubsite_switcher () through template auxiliary functions.