WP Manifestindependent plugin directory
manifest / content / city-cms

City CMS

WordPress plugin til at oprette og administrere byer som Custom Post Type

by mhoDK · github.com/mhodk/city-cms · website

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/mhodk/city-cms/archive/refs/heads/main.zip

Byer CMS (City CMS Plugin)

Et WordPress-plugin til at oprette, administrere og vise "byer" som en Custom Post Type (CPT). Plugin'et gør det muligt at oprette by-sider med bynavn, postnummer og indhold – med automatisk genereret slug og oversigtsvisning.

Funktioner

  • Opretter en ny post type: By (city)
  • Meta-felter til bynavn og postnummer
  • Automatisk SEO-venlig slug baseret på bynavn og postnummer
  • Understøttelse af single template (single-city.php)
  • Shortcode [byer_oversigt] til visning af alle byer i en oversigt
  • Indstillingsside under "Byer → Indstillinger"
  • Kompatibel med Elementor (Theme Builder anvendes kun, hvis der oprettes en specifik template)

Installation

  1. Upload plugin-mappen til /wp-content/plugins/city-cms/
  2. Aktivér plugin'et via Plugins → Aktiver i WordPress
  3. Et nyt menupunkt "Byer" vises i adminmenuen
  4. Gå til Byer → Indstillinger for at ændre slug (standard er byer)

Funktionalitet

1. Custom Post Type: city

Plugin'et registrerer en ny post type med følgende parametre:

  • Navn: Byer
  • Slug: /byer/
  • URL-struktur: /byer/[by-navn]-[postnummer]/
  • Understøtter titel og WordPress-editor
  • Metafelter:
    • _city_postal_code (postnummer)
    • _city_name (bynavn)

Slug dannes automatisk, når du gemmer en by. Eksempel: roskilde (bynavn) + 4000 (postnummer) → /byer/roskilde-4000/

2. Metabox-felter

Ved redigering af en by vises to ekstra felter:

  • Byens navn
  • Postnummer

Disse bruges til slug-generering, sortering i oversigten og evt. visning på frontend. Metaboxene findes i includes/metabox.php.

3. Single template (frontend-visning)

  • Filnavn: single-city.php
  • Viser titel og indhold (ingen dato eller forfatter)
  • Bruges automatisk til visning af en enkelt by (fx /byer/roskilde-4000/)

Vigtigt: Filen single-city.php ligger i plugin-rodmappen. WordPress loader ikke templates direkte fra plugins, så filen skal flyttes manuelt til det aktive (eller child-)tema:

/wp-content/themes/[dit-tema]/single-city.php

Når filen ligger dér, anvendes den automatisk til visning af city-posts.

4. Shortcode: [byer_oversigt]

Indsæt shortcoden på en vilkårlig side eller et indlæg for at vise en oversigt over alle byer.

[byer_oversigt]

Output: En simpel tabel med byer sorteret alfabetisk efter bynavn. Tre kolonner pr. række (autojusteret). Hver by linker til sin egen side. Koden findes i includes/shortcodes.php.

5. Indstillinger

Der findes en indstillingsside under Byer → Indstillinger. Her kan du ændre basis-slug (standard: cities). Ændringen opdaterer automatisk permalink-strukturen. Indstillingssiden findes i pages/settings.php.

6. Elementor / Theme Builder-kompatibilitet

Hvis der ikke findes en Elementor-template for "Byer", anvendes single-city.php. Hvis en designer opretter en "Single City" template i Elementor, overtager Elementor automatisk visningen. Ingen yderligere opsætning er nødvendig.

Filstruktur

city-cms/
│
├── city-cms-plugin.php         # Hovedplugin-fil
│
├── includes/
│   ├── post-type.php           # Registrerer CPT 'city'
│   ├── metabox.php             # Meta-felter til postnummer og bynavn
│   ├── admin-menu.php          # Tilføjer indstillingsmenu under "Byer"
│   └── shortcodes.php          # Shortcode [byer_oversigt]
│
├── pages/
│   └── settings.php            # Indstillingsside
│
└── single-city.php             # Template til visning af enkelt by

Brugseksempel

Opret en by:

  1. Gå til Byer → Tilføj ny
  2. Udfyld: Titel, Byens navn (metafelt), Postnummer (metafelt), Tekst i editoren
  3. Klik "Udgiv" – slug genereres automatisk som fx /byer/roskilde-4000/

Vis en by: Gå til URL'en: https://ditdomæne.dk/byer/roskilde-4000/

Vis oversigten: Opret en ny side (fx "Vores byer") og indsæt:

[byer_oversigt]

Siden viser herefter en tabel med alle oprettede byer.

Udviklernoter

  • CPT-slug kan ændres via plugin-indstillingerne
  • Rewrite-rules flushes automatisk ved ændring af slug
  • Single template placeres i temaet, så designere kan tilpasse layout uden at ændre plugin'et
  • Alle funktioner, actions og filters er navngivet med city_cms_-prefix for at undgå konflikter

Fejlfinding

Problem Løsning
By-URL viser /index.php/ Gå til Indstillinger → Permanente links og gem igen
single-city.php bruges ikke Sørg for at filen ligger i /themes/[tema]/single-city.php
Oversigten viser ingenting Tjek at der findes publicerede city-posts
Ændret slug træder ikke i kraft Gem ændringer i Permanente links for at flush'e rewrite rules

Krav

  • WordPress 6.0 eller nyere
  • PHP 7.4 eller nyere
  • Et tema med standard template-hierarki (eller child theme)
  • (Valgfrit) Elementor-kompatibilitet

Forfatter

Udviklet af: mhoDK Version: 1.4.0 Licens: GPL v2 eller nyere

Releases

1 release.

Tag
Published
v1.4.0 latest
Jan 23, 2026 8mo ago

These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.