v0.4.1 · připravujeme submission na wordpress.org

Open Graph, jak ho WordPress měl mít.

Plná kontrola nad meta tagy pro dvanáct platforem. Jedno admin UI, per-post i per-archive override, živé preview, čisté převzetí od SEO pluginů.

Zdarma · GPL-2.0-or-later · PHP 8.1+ · WordPress 6.2+

218
PHPUnit testů
0,047 ms
Front-page render
12
Platforem
7
SEO plugin takeoverů

Jeden plugin, dvanáct platforem. Každá s vlastními pravidly.

Facebook
X / Twitter
LinkedIn
iMessage
Threads
Mastodon
Bluesky
WhatsApp
Discord
Pinterest
Telegram
Slack

12 podporovaných platforem z krabice

Vyzkoušejte si to

Změňte titulek, popisek nebo obrázek vlevo a sledujte, jak se náhled mění napříč šesti nejčastějšími platformami.

leonenko.cz · OG demo
leonenko.cz
Web, který přitahuje klienty bez slevových akcí
Většina firemních webů říká to, co všichni ostatní. Ukážeme, jak najít vlastní hlas a postavit jednoduché informační flow.
Plugin generuje meta tagy. Tohle ukazuje, co z nich platformy vykreslí — včetně truncace dle limitů.

Co to dělá

Každý SEO plugin (Yoast, Rank Math, AIOSEO) umí Open Graph „nějak“. Jenže všechny to dělají jako vedlejší funkci — jeden globální Facebook & Twitter blok, žádné preview, žádná per-platformní logika. Open Graph Control je opačný přístup. OG je hlavní produkt a zbytek se mu přizpůsobuje.

Dvanáct platforem má svoje pravidla. Pinterest chce vertikální obrázek, iMessage square, LinkedIn delší popis, WhatsApp menší velikost souboru. Plugin to ví a hlídá — každý příspěvek může jednotlivou platformu přepsat, s inline warningy v reálném čase.

Hlavní funkce

React admin UI · 11 sekcí

Top-level menu, žádné filtr-only API. Overview, Site defaults, Platforms, Post types, Archive overrides, Images, Fallback chains, Integrations, Security, Debug, Import/Export.

Per-post + per-archive override

Každý příspěvek, kategorie, tag, taxonomie i autor mají svůj OG title / description / image — s live preview pro všech 12 platforem.

SEO plugin takeover

Detekce a čisté převzetí OG výstupu od 7 SEO balíčků (Yoast, Rank Math, AIOSEO, SEOPress, Jetpack, TSF, Slim SEO). Žádné duplicitní tagy.

Pinterest Rich Pins

Article / Product / Recipe JSON-LD built-in. Payload chráněn JSON_HEX_TAG proti stored XSS breakoutu.

Per-platform image sizes

Auto-resize do tří velikostí (landscape 1200×630, square 600×600, Pinterest 1000×1500). Bulk regeneration pro existující attachmenty.

Length & image validation

Každá platforma má vlastní limity. Plugin je zná a inline warning dá hned, ne až při sharingu.

Output cache · sub-ms render

Transient-based cache se smart invalidation přes save_post / update_option / term_meta / user_meta. Front-page 0,047 ms, single post 0,396 ms (mean, 500 iterací).

WP-CLI tooling

wp ogc tags / validate / regenerate / bench. Všechno auditovatelné z terminálu, žádný admin click-through pro ops úlohy.

Kde to funguje

Každá platforma má vlastní Platform třídu, která ví, co dělá, a vrací správné tagy. Seznam není zmrzlý — registry je filter-based, nové platformy jde doplnit bez forku.

Facebook
X / Twitter
LinkedIn
iMessage
Threads
Mastodon
Bluesky
WhatsApp
Discord
Pinterest
Telegram
Slack

Jak to funguje

Nainstalujte plugin

Přes WordPress admin (až bude schválený) nebo ručně ze ZIPu. Plugin detekuje stávající SEO balíček a nabídne čisté převzetí.

Nastavte globální defaulty

Obrázek, výchozí typ obsahu, Twitter handle, Facebook app ID. Vše v jednom React admin UI, bez lezení do filtrů.

Sdílejte. Vše sedí.

Každý příspěvek dostane správné meta tagy pro každou platformu. Per-post override jde jedním kliknutím, když to potřebujete vyladit.

Bezpečnost a testování

Plugin poběží na desetitisících webů a má přístup k admin kontextu. Bezpečnost není extra feature, ale vstupní podmínka. Tady je, čím kód prochází, než se dostane k vám.

Statická analýza — PHPStan level 8

Nejpřísnější úroveň typové analýzy v PHP. Žádné mixed typy, žádné implicitní konverze, žádné tiché chyby. Linter běží jako součást CI při každém commitu.

218 PHPUnit + 30 Playwright testů

218 PHPUnit testů (429 assertions) + 18 Playwright fixture + 12 WP E2E. Kritické cesty (resolvers, takeover, archive overrides, JSON-LD escaping) na 90+ %. Nová verze se nezveřejní, pokud neprojde celá sada.

Sanitizace a escape na vstupu i výstupu

Každý user input prochází sanitize_text_field / wp_kses / esc_* podle kontextu. Žádný raw echo, žádné concat do HTML. Plugin splňuje WordPress Coding Standards v strict módu.

Nonces, capabilities, autorizace

Všechny admin akce chrání wp_verify_nonce(). Před destruktivní operací vždy current_user_can() s jemnou capability (manage_options / edit_posts). Žádná logika „když nevidíš UI, nejsi tam“.

Prepared SQL

Každý dotaz do DB jde přes $wpdb->prepare() nebo ORM. Žádné string concat. Plugin prošel SQL injection review na všech REST endpointech i admin formech.

Plugin Check + axe-core a11y

Oficiální plugin-check-action od WordPress.org běží na každý push proti built zipu. @axe-core/playwright skenuje admin shell, Security panel, Archive overrides a term edit screen — zero violations (WCAG 2 AA).

Časté otázky

Bude plugin zdarma?

Ano. Open Graph Control je licencován pod GPL-2.0-or-later a cílí na WordPress Plugin Directory jako zcela zdarma plugin. Žádný paywall, žádná pro verze, žádné feature-gating.

Funguje s mým SEO pluginem?

Ano, konkrétně s Yoast SEO, Rank Math, All in One SEO, SEOPress, Jetpack, The SEO Framework a Slim SEO. Plugin detekuje jejich OG výstup a čistě ho převezme — na stránce tak nevznikají duplicitní meta tagy.

Co když chci jiné tagy pro jednu platformu?

Každý příspěvek má per-post meta box s per-platform override. Můžete mít jiný title pro LinkedIn (delší, pro B2B publikum) a kratší pro X. Plugin validuje délky a velikost obrázku v reálném čase.

Umí to Pinterest Rich Pins?

Ano, JSON-LD pro Article, Product i Recipe. Plugin generuje správný schema.org kód na základě typu obsahu a per-post override.

Jak je to s obrázky?

Plugin při instalaci automaticky zaregistruje 3 velikosti obrázků: landscape 1200×630 (Facebook/Twitter/LinkedIn), square 600×600 (iMessage) a vertical 1000×1500 (Pinterest). WordPress je sám generuje z featured image.

Kdy to bude na WP.org?

Plugin je v0.4.1 feature-complete. Před submissionem ještě publikuji GitHub Security Advisory pro stored-XSS fix z v0.2.1 a dodělám PNG bannery/ikony pro wp.org adresář. Pak submit. Mezitím je v0.4.1 zip ke stažení z GitHub releases — obsahuje jak dynamic OG card generation (v0.4.0), tak ACF + JetEngine field sources (v0.4.1).

Jak je to s výkonem a daty?

Plugin nevolá žádné externí API, neposílá telemetrii, nic „nephone-home“. Render je sub-millisecond — front-page 0,047 ms, single post 0,396 ms (mean z 500 iterací přes wp ogc bench). Output cache snižuje cached kontexty na jeden get_transient read.

Changelog a plán

  1. v0.4.1Duben 2026 · aktuální · Dynamic OG cards + Dynamic field sources
    • NEW (v0.4.1): Dynamic field sources — mapování ACF + JetEngine custom fields do OG title / description chainu per post type
    • NEW (v0.4.1): Settings → Field sources tab s detection badges a per-post-type dropdowny
    • NEW (v0.4.1): Filters ogc_resolve_title_step + ogc_resolve_description_step pro externí per-step rozšíření title/description resolverů
    • NEW (v0.4.0): Dynamic OG card generation — server-side render 1200×630 PNG karty pro posty, archivy a autory bez vlastní OG image (~80 % blogů)
    • NEW (v0.4.0): Card template editor se živým preview (debounced 300 ms), customizable pozadím (gradient/solid/image), logem, barvou textu
    • NEW (v0.4.0): Per-post + per-archive status badge v meta boxu a ArchiveEditoru
    • NEW (v0.4.0): 5 REST endpointů pod /og-card/* + 4 WP-CLI subcommands (wp ogc cards generate/regenerate/status/purge)
    • NEW (v0.4.0): Filter ogc_card_should_generate + action ogc_card_generated + per-step filter ogc_resolve_image_step
    • NEW (v0.4.0): BackfillCron (daily 5-postů sweep) + GcCron (stale version cleanup, 7-day grace) — render-on-save v shutdown hooku, nikdy neblokuje editor
    • Bundled Inter font (SIL OFL), cold-start fallback přes transient lock
    • Carry over z v0.3: 12 platforem, per-archive overrides, SEO takeover pro 7 pluginů, Pinterest Rich Pins, output cache, 3 auto-generated image sizes
    • 359 PHPUnit (656 assertions) + golden cards image-diff CI + PHPStan level 9
    • ImagickRenderer stub připravený, plná implementace v v0.5 (GD je default a funguje na 99 % WP hostingů)
  2. v1.0+Plánováno · Větší kroky
    • Multisite support (network-wide settings + per-site overrides)
    • WordPress block pro embed OG preview card přímo v post contentu
    • Analytics: CTR z Facebook/Twitter proti OG variantám
    • Multi-template presety, square (600×600) + Pinterest (1000×1500) auto-render
  3. v2.0+Plánováno · Komunita & ekosystém
    • Federovaný sharing přes ActivityPub (Mastodon-native bez external services)
    • AI-asistovaný alt text a meta description pro obsah bez nich (opt-in, lokální model)
    • Ekosystémové integrace: Gravity Forms, WooCommerce product variants, Events Calendar
    • Public plugin API pro komunitu — stabilní namespace, dokumentace, extension template
  4. v3.0+Plánováno · Výzkum & experimenty
    • A/B testing framework pro OG varianty — sledování performance různých title/image kombinací
    • Schema.org beyond Rich Pins — full structured data suite (Event, Review, HowTo)
    • Headless CMS integrace — GraphQL schema pro OG payload read/write bez admin UI

Technické požadavky

  • PHP 8.1 nebo novější
  • WordPress 6.2 nebo novější
  • Licence: GPL-2.0-or-later
  • Namespace: EvzenLeonenko\OpenGraphControl
  • Plugin slug: open-graph-control
v0.4.1 release k dispozici

Vyzkoušejte Open Graph Control dřív, než přistane na WP.org.

Stáhněte si v0.4.1 zip přímo z GitHub releases — obsahuje dynamic OG card generation (v0.4.0) a ACF + JetEngine field sources (v0.4.1). Submit na wordpress.org plánuju během pár týdnů — jakmile publikuju GHSA a dodělám PNG bannery/ikony pro wp.org adresář.

Zdarma navždy · GPL-2.0-or-later · open-source · 0 telemetrie