Repository navigation
Releases: VictorCartesius/WP-Vincula
Release list
v1.0.1
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
vinculafolder 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.cssis
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_zoomifyisfalseand fancybox is on), card logos can open a
lightbox instead of following the link. Adddata-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_footerblock intoassets/vincula.css, enqueued onwp_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.
vinculumcustom 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
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
vinculumcustom 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,URLandLogocolumns 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
- Download the release archive, or zip the plugin folder yourself, making sure the archive
contains a single top-level folder namedvincula. - In your site admin, go to Plugins → Add New → Upload Plugin, choose the archive and
install it. - Click Activate Plugin.
Manually via FTP / file manager
- Extract the archive and rename the folder to
vinculaif necessary. - Upload it to
wp-content/plugins/so that the entry point sits at
wp-content/plugins/vincula/vincula.php. - 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_cardare rewritten tovinculum. - Meta keys
_friend_card_url,_friend_card_logoand_friend_card_orderare renamed to
their_vincula_*equivalents. - The option
vincula_legacy_migratedrecords 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_ordermeta 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
fromgoogle.com/s2/faviconsby the visitor's browser, which may fail or be slow in some
regions. - No uninstall cleanup. Deactivating or deleting the plugin leaves
vinculumentries,
their meta and thevincula_legacy_migratedoption 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
- Documentation: README
- Sample import file:
samples/friend-links-sample.csv - License: MIT
- Full changelog: https://github.com/VictorCartesius/WP-Vincula/commits/main