Skip to content

Releases: VictorCartesius/WP-Vincula

Release list

v1.0.1

Choose a tag to compare

@VictorCartesius VictorCartesius released this 18 Oct 17:27

Vincula 1.0.1

Release date: 2026-10-19

A bug-fix release. Friend link cards no longer appear unstyled the first time the
Blogroll page is opened on themes that navigate without a full page reload.


Fixed

Friend link cards rendered unstyled on the first visit.

On themes that use PJAX / AJAX navigation — Argon, for example, enables it by
default — clicking a menu link does not load a complete document. The theme
fetches the target page and swaps only its own content containers
(#primary, #rightbar, …) into the current one.

Vincula printed its card CSS from a wp_footer callback registered by the
shortcode. Page footers are not part of those containers, so the <style> block
was thrown away during the swap: the card markup arrived, but none of its rules
did. A manual refresh loaded a full document and everything looked correct,
which is why the bug only showed up on the first visit.

The styles now live in assets/vincula.css and are enqueued on
wp_enqueue_scripts, so they are part of the document head and present from the
very first byte — including when only a fragment of the page is replaced.

Side benefit: this also removes the flash of unstyled cards (FOUC) that the
footer-injected CSS caused on slow first loads.


What changed

File Change
assets/vincula.css New. Card grid styles moved out of the inline footer block.
includes/class-vincula-public.php Enqueues the stylesheet on wp_enqueue_scripts; the ~76-line wp_footer style callback was removed.
vincula.php Version bumped to 1.0.1 (header and VINCULA_VERSION constant, so the ?ver= cache-buster changes too).
README.md Documents the new stylesheet location, three/four column customization, and the 1.0.1 change log entry.
.gitignore Ignores local-only files: old/ and *.code-workspace.

Upgrade notes

  • Drop-in replacement. Upload the new vincula folder over the old one and
    the fix is active. No settings to migrate, no database changes.
  • No markup or selector changes. Every class name (.vincula-grid,
    .vincula-item, .vincula-link, .vincula-icon, .vincula-name,
    .vincula-desc) and both shortcodes ([vincula] and the legacy
    [friend_cards]) are unchanged, so existing custom CSS keeps working.
  • Clear your cache once. If a page cache or a CDN sits in front of the site,
    purge it after updating; the old HTML may still reference the inline styles.
  • If your site is on a version control deploy, make sure assets/vincula.css is
    uploaded — the plugin's only new file.

Compatibility

Item Requirement
WordPress 5.0 or later
PHP 7.0 or later
Browsers Any modern browser (CSS Flexbox + -webkit-line-clamp)

Unchanged from 1.0.0: custom post type vinculum, meta keys _vincula_url,
_vincula_logo, _vincula_order, and the one-time legacy migration from the
earlier Blogroll-FriendLinks release.


Known limitations

  • Themes that wrap every <img> in a lightbox. If a theme rewrites content
    images into clickable lightbox wrappers (Argon does this when
    argon_enable_zoomify is false and fancybox is on), card logos can open a
    lightbox instead of following the link. Add data-fancybox="false" to the
    icon, or disable that theme option.
  • No custom logo, no Google access. Logos fall back to
    google.com/s2/favicons, which is fetched by the visitor's browser and is
    unreachable in some regions. Upload a logo for those entries instead.

Full changelog

1.0.1

  • Moved the card styles from an inline wp_footer block into assets/vincula.css, enqueued on wp_enqueue_scripts. Fixes cards rendering unstyled on the first visit with themes that navigate via PJAX/AJAX and only swap the content container.

1.0.0

  • Initial release as Vincula, formerly Blogroll-FriendLinks.
  • vinculum custom post type and meta boxes (URL / Logo / Priority).
  • [vincula] shortcode rendering a responsive card grid; [friend_cards] kept as an alias.
  • Favicon fallback for links without a logo.
  • CSV import and export on the Vincula → Import / Export screen.
  • Inline quick edit for URL, logo, priority and description on the link list screen.
  • One-time automatic migration of entries created by the earlier Blogroll-FriendLinks release (post type friend_card, meta keys _friend_card_*).

v1.0.0

Choose a tag to compare

@VictorCartesius VictorCartesius released this 18 Oct 07:15

Vincula v1.0.0

Release date: 2026-10-18

First public release of Vincula, a dependency-free WordPress plugin for managing
blogroll friend links. Curate entries in the admin and render them anywhere with a single
shortcode. It ships as plain PHP and inline CSS — no build step, no Composer or npm
packages.

  • Plugin slug: vincula
  • Version: 1.0.0
  • Requires: WordPress 5.0+, PHP 7.0+
  • License: MIT

Highlights

  • Dedicated link management — registers the vinculum custom post type with its own
    admin menu, so friend links stay separate from posts and pages.
  • Shortcode rendering — drop [vincula] into any shortcode-aware area to output a
    responsive card grid.
  • Custom logos with favicon fallback — paste a logo URL or pick one from the media
    library; entries without a logo fall back to the target site's favicon.
  • Priority ordering — assign each link a numeric weight; lower numbers appear first.
  • At-a-glance admin list — extra Priority, URL and Logo columns on the link list
    screen.
  • Quick edit — change URL, logo, priority and description inline, without opening the
    editor.
  • CSV import / export — move the whole list in and out of the site from a single
    screen, with a sample file included.
  • One-time migration — entries and meta keys created by the earlier
    Blogroll-FriendLinks plugin are renamed automatically.
  • Responsive by default — two columns on desktop, a single column at 600px and below.

Requirements

Item Requirement
WordPress 5.0 or later
PHP 7.0 or later
Browser Any modern browser with CSS Flexbox and -webkit-line-clamp support
Tooling None — the plugin ships as source, no build or dependency install required

Installation

Via the admin dashboard

  1. Download the release archive, or zip the plugin folder yourself, making sure the archive
    contains a single top-level folder named vincula.
  2. In your site admin, go to Plugins → Add New → Upload Plugin, choose the archive and
    install it.
  3. Click Activate Plugin.

Manually via FTP / file manager

  1. Extract the archive and rename the folder to vincula if necessary.
  2. Upload it to wp-content/plugins/ so that the entry point sits at
    wp-content/plugins/vincula/vincula.php.
  3. Activate Vincula in the Plugins screen.

Rewrite rules are flushed on both activation and deactivation.


Usage

[vincula]

A common setup is a "Friends" page containing only the shortcode, added to your
navigation menu. The shortcode accepts no attributes; the legacy [friend_cards] alias is
still registered for pages created before the rename.


Data model

Data Storage Key
Friend link entry Post type vinculum
Site name Post title —
Site description Post content —
Link URL Post meta _vincula_url
Logo URL Post meta _vincula_logo
Priority Post meta _vincula_order

Upgrading from Blogroll-FriendLinks

Every internal identifier was renamed in this release. If you are upgrading, existing data
is migrated automatically and at most once — on activation, or on the next request if the
plugin was already active:

  • Posts stored as friend_card are rewritten to vinculum.
  • Meta keys _friend_card_url, _friend_card_logo and _friend_card_order are renamed to
    their _vincula_* equivalents.
  • The option vincula_legacy_migrated records that the migration has run.

No new database tables are created; all data stays in the standard wp_posts and
wp_postmeta tables.

Deactivate the old plugin and back up the database before upgrading. Do not keep both
versions active at the same time.


Known limitations

  • Entries need the _vincula_order meta key to appear. The front-end query sorts by
    _vincula_order, so an entry created without that key is not returned. Save the entry
    once in the editor, or import it through CSV, to write the key.
  • No pagination or shortcode attributes. [vincula] renders every published entry in
    one pass, and the shortcode accepts no arguments.
  • Grid density is fixed in code. Two columns are the default; switching to three or four
    means editing the inline stylesheet in
    includes/class-vincula-public.php, not a setting.
  • English-only interface. Strings are hard-coded and no translation files are loaded,
    so language packs will not apply.
  • Favicon fallback depends on a third party. Without a custom logo, icons are requested
    from google.com/s2/favicons by the visitor's browser, which may fail or be slow in some
    regions.
  • No uninstall cleanup. Deactivating or deleting the plugin leaves vinculum entries,
    their meta and the vincula_legacy_migrated option in the database.
  • Empty state is a plain paragraph. When no entry matches, the shortcode outputs
    <p>No friend links available.</p>.
  • Styles are printed per shortcode call. A page containing two [vincula] instances
    gets the inline <style> block twice. It is harmless but not deduplicated.

Links