The official companion plugin for the NEOVANTAGE WordPress theme.
Features | Why Choose It | Installation | Requirements | FAQ | Changelog | Hire the Developer
NEOVANTAGE Core is the official companion plugin for the NEOVANTAGE WordPress theme. It adds the features that belong in a plugin -- post view tracking, enhanced widgets, custom Gutenberg blocks, a one-click demo importer, and Customizer export/import -- keeping the theme itself lean, portable, and compliant with WordPress.org guidelines.
This plugin is designed exclusively for the NEOVANTAGE theme. It depends on theme functions and styling that are only present when NEOVANTAGE is active. It will not produce the expected output with any other theme.
Tracks and displays how many times each post has been viewed -- automatically, without configuration. View counts are stored as standard WordPress post meta (_neovantage_post_views_count), so they survive theme switches, plugin deactivations, and database migrations.
No external service. No API key. No bloat.
A drop-in upgrade to WordPress's built-in Recent Posts widget. Shows post thumbnails, publication dates, and theme-matched styling -- add it to any sidebar or footer column from Appearance -> Widgets.
Adds Email and Dribbble profile fields to WordPress user profiles. Displayed automatically on author archive pages so your writers have a complete, professional presence without installing a separate plugin.
A single-screen admin panel listing your PHP version, WordPress version, server software, active theme version, and database information. Share a screenshot with support instead of explaining your setup from scratch.
Imports the full NEOVANTAGE demo -- posts, pages, menus, widgets, and all Customizer settings -- in a single click. Go from a blank WordPress install to a fully configured demo site in under a minute.
A parent/child Gutenberg block (neovantage-blocks/accordion + neovantage-blocks/accordion-item) for FAQ-style collapsible content. Built on semantic <details>/<summary> HTML -- accessible by default, keyboard-navigable, and functional without JavaScript.
Key features:
- FAQ structured data -- optional JSON-LD
FAQPageschema output (disabled by default, per-block toggle). Helps search engines display rich FAQ snippets directly in results. - Collapse others -- groups accordion items so only one can be open at a time (uses the HTML
nameattribute on<details>elements). - Build-free -- vanilla JS editor scripts using
window.wp.*globals. No webpack, no JSX, no build step required. - Theme-integrated -- styled to match the NEOVANTAGE design system with theme color support via CSS custom properties.
Outputs professional ProfilePage + Person schema.org structured data on author archive pages -- the format Google recommends for author/profile URLs. Includes author name, avatar, bio, social profile links (sameAs), published post count (interactionStatistic), registration date, and site context (isPartOf). Handles both full URLs and plain usernames in social profile fields. Auto-disabled when Yoast, Rank Math, SEOPress, or AIOSEO is active so it never conflicts with a dedicated SEO plugin.
Export your entire WordPress Customizer configuration to a .json file. Import it on another site in one step. Perfect for moving settings between staging and production, or backing up your design before a major change.
| NEOVANTAGE Core | Generic alternatives | |
|---|---|---|
| Setup time | Zero -- active on plugin activation | Each feature needs a separate plugin |
| Theme integration | Pixel-perfect -- built for NEOVANTAGE's layout and CSS | Styling gaps require custom CSS overrides |
| Post view storage | Standard WP post meta -- fully portable | Some plugins use custom tables or external APIs |
| Customizer backup | Native .json export/import built in |
Requires a third-party migration plugin |
| Demo content | One click -- menus, widgets, and settings all applied | Manual import, then manual Customizer recreation |
| Update delivery | Standard WP update system -- no extra steps | N/A |
| PHP 8.4 support | Tested clean on PHP 8.0 - 8.4 | Varies by plugin |
| Code footprint | Loads only what the theme needs | General-purpose plugins load unused code on every page |
| Dependencies | Zero -- no APIs, no accounts, no SaaS | Some require API keys or remote services |
| Requirement | Minimum | Recommended |
|---|---|---|
| WordPress | 5.3 | 7.0 |
| PHP | 8.0 | 8.4 |
| Theme | NEOVANTAGE (any version) | NEOVANTAGE 2.0.13+ |
- Install and activate the NEOVANTAGE theme
- A notice appears prompting you to install NEOVANTAGE Core
- Go to Appearance -> Install Plugins (or NEOVANTAGE -> Install Plugins)
- Click Install next to NEOVANTAGE Core, then Activate
- Download
neovantage-core.zipfrom the latest release - In your WordPress admin go to Plugins -> Add New -> Upload Plugin
- Choose the zip file and click Install Now
- Click Activate Plugin
- Download and unzip
neovantage-core.zip - Upload the
neovantage-core/folder to/wp-content/plugins/ - Go to Plugins -> Installed Plugins and activate NEOVANTAGE Core
Once installed, NEOVANTAGE Core integrates with WordPress's native update system. When a new release is published you will see the standard update notice in:
- Dashboard -> Updates
- The Plugins list row
- The Admin bar badge
No manual downloads required -- update directly from your WordPress admin, exactly like any plugin hosted on WordPress.org.
Post views are tracked automatically on every single post page load. No configuration required. The theme displays view counts in post meta areas automatically.
To query the count in custom code:
$views = (int) get_post_meta( get_the_ID(), '_neovantage_post_views_count', true );- Go to NEOVANTAGE -> Demo Importer
- Click Import Demo
- Wait for the import to complete -- menus, widgets, and Customizer settings are all applied automatically
Run the demo importer on a fresh WordPress installation only. Always back up before importing on an existing site.
- Go to NEOVANTAGE -> Customizer Export/Import
- Click Export to download your settings as a
.jsonfile - On another site, upload that file using the Import button on the same page
Does this plugin work without the NEOVANTAGE theme? No. NEOVANTAGE Core depends on theme functions and styling that are only available when the NEOVANTAGE theme is active. It is not a general-purpose plugin and is not supported outside of NEOVANTAGE.
Will my post view counts survive a theme switch? Yes. View counts are stored as standard WordPress post meta and are not tied to the theme. They persist through theme switches, plugin deactivations, and WordPress updates.
Can I import demo content on an existing site? The demo importer is designed for fresh installations. Running it on an existing site may create duplicate posts, pages, or menus. Always back up first.
Is this compatible with PHP 8.4? Yes. Tested and confirmed clean on PHP 8.0, 8.1, 8.2, 8.3, and 8.4. All deprecated functions have been removed or replaced.
Where can I get support? Post in the WordPress.org support forum or open an issue on GitHub.
- Feature: Added
neovantage-blocks/accordionandneovantage-blocks/accordion-itemGutenberg blocks. Parent/child dynamic blocks using semantic<details>/<summary>HTML for native accessibility and keyboard support. Parent block provides a "Collapse others" toggle (uses the HTMLnameattribute to group items) and optional FAQ structured data output (JSON-LDFAQPageschema, disabled by default, per-block toggle). Build-free vanilla JS editor scripts following the existingneovantage-blocks/buttonpattern. - Feature: Added JSON-LD structured data for author archive pages (
Neovantage_Core_Structured_Dataclass). OutputsProfilePageschema withPersonmainEntity including name, avatar (ImageObject256x256), bio,sameAssocial links (website, Facebook, X/Twitter, LinkedIn, Dribbble, Instagram, GitHub, YouTube),interactionStatistic(published post count viaWriteAction),dateCreated(user registration),dateModified(latest post), andisPartOf(WebSite). Handles both full URLs and plain usernames in social profile fields. Auto-disabled when Yoast, Rank Math, SEOPress, or AIOSEO is active. - Compat: Tested up to WordPress 7.0.
Released alongside NEOVANTAGE theme 2.1.0 -- the two packages ship the same day to capture the theme.json design-token surface and the companion plugin polish as one user-visible upgrade.
- Improvement: Post view counter now skips the increment when an administrator (
manage_optionscapability) is logged in. Self-views from the team that runs the site no longer inflate the public counter. Behaviour is filterable via the newneovantage_skip_post_view_counthook (bool $skip, WP_Post $post); returntrueto skip a view,falseto count. Sites that want broader exclusion (editors, authors, all logged-in users) can add a one-line callback. Existing counters are untouched -- only future increments are affected. - Feature: Shipped the
neovantage-blocks/buttonGutenberg block -- the block-editor counterpart of the[neovantage_button]shortcode. Build-free implementation (block.json+ editor JS usingwindow.wp.*globals, no JSX/Babel/webpack). Inspector grouped into Button (label/URL/target) and Appearance (style/size/alignment/full-width) panels. PHPrender_callbackdelegates to the same renderer the shortcode uses, so block and shortcode emit identical HTML and stay in lockstep on future tweaks. - Security: Hardened
Neovantage_Core_Shortcode_Button::neovantage_button()-- link text and title attribute are now properly escaped (esc_html/esc_attr), every input is validated against an enum (or normalized throughFILTER_VALIDATE_BOOLEANfor full-width), andrel="noopener noreferrer"is added automatically whenevertarget="_blank"to prevent reverse-tabnabbing. The default URL placeholder also changed from the non-standard'#.'to'#'. No visible change for any well-formed[neovantage_button]invocation. - Fix: Renamed
neovantage_custom_contact_info()tonc_custom_contact_info()to match theadd_filter( 'user_contactmethods', ... )callback name -- resolves a fatal "callback not found" TypeError on REST/wp/v2/users/meupdates and any path that triggerswp_get_user_contact_methods(). Also corrected the textdomain on the two contact-field labels fromneovantagetoneovantage-core. - i18n: Normalized escape levels in
Neovantage_Core_Admin::nc_get_admin_script_l10n_strings()-- plain-text JS labels now useesc_html__()(matching their.html()/ string-replace usage inneovantage-core-admin.js), and HTML-bearing strings (classic,default,register_first) now go throughwp_kses_post()like the existingerror_timeout/error_php_limitsentries. No string IDs or translations changed. - Docs: Documented the
neovantage_*shortcode tag prefix as a frozen public-contract carve-out. The eight tags ([neovantage_container],[neovantage_row],[neovantage_column],[neovantage_title],[neovantage_gap],[neovantage_hr],[neovantage_button],[neovantage_content_box]) predate the plugin's laternc_naming convention but are stored verbatim inside saved post content, so renaming any of them would silently strip blocks from existing posts and is treated asBreaking. New shortcodes added to this plugin must use thenc_prefix. - Refactor: Removed dead block-editor scaffolding from
Neovantage_Core_Public-- the long-commentedadd_action( 'enqueue_block_editor_assets', ... )and the orphanpublic/js/neovantage-core-editor-blocks.js(which usedblocks.getSaveElementto wrapcore/tablein a.table-responsivediv) have been deleted. The hook was never registered in any shipped version, so no live behaviour changes. If table-wrapping is wanted later, prefer a render-time filter (render_block) over a save-side block filter to avoid mutating persisted post content. - Refactor: Removed the orphan
NEOVANTAGE_PLUGIN_DIRandNEOVANTAGE_PLUGIN_URLconstants fromneovantage-core.php-- they duplicated theNC_DIR_PATH/NC_DIR_URLpair and grep across both the theme and the plugin found zero consumers. - Refactor: Removed dead
$post_dateblock inNeovantage_Core_Widget_Recent_Posts::widget()-- the variable was computed via a relative-time formatter but never displayed. Removal also retires a latentcurrent_time( 'timestamp' )deprecation notice (deprecated since WP 5.3).
- Fix: Updated
plugins-data.json--versionandlatest_versionfor NEOVANTAGE Core bumped from2.0.8to2.0.9so the NEOVANTAGE theme's Install Plugins screen displays the correct version.
- Fix: Admin header "Installed" version now reads from the NEOVANTAGE theme directory (
style.cssviawp_get_theme()) instead of the plugin's ownNC_VERSIONconstant -- the displayed version correctly reflects the installed theme version.
- Fix: Plugin now boots on
plugins_loadedhook instead of directly at file load -- resolves_load_textdomain_just_in_timenotice introduced in WordPress 6.7.
- Fix: Corrected
GITHUB_OWNERconstant fromPixelsPresstomohsin-rafique-- wrong owner caused the GitHub Releases API to return 404, silently blocking all update notifications in Dashboard -> Updates, Plugins list, and admin bar. - Fix: Updated plugin
urlandhomepagein the updater to the correct GitHub repo (github.com/mohsin-rafique/neovantage-core). - Fix: Updated doc block API URL reference from
PixelsPress/neovantage-coretomohsin-rafique/neovantage-core. - Distribution: Plugin source code and releases moved to GitHub (
github.com/mohsin-rafique/neovantage-core). Download URL updated fromdownloads.pixelspress.comto GitHub Releases. - Distribution: Plugin version metadata JSON (
plugins-data.json) moved fromdownloads.pixelspress.comto GitHub raw content. - Improvement: Plugin URI in plugin header updated to point to GitHub repo instead of
pixelspress.com. - Improvement: Plugin description updated to accurately reflect all features.
- Improvement:
plugins-data.jsonadded to repo root -- single source of truth for version metadata used by the NEOVANTAGE theme's TGM plugin list. - Bump: Version raised to 2.0.7 in plugin header and
NC_VERSIONconstants.
- Compatibility: Tested up to WordPress 6.9.
- Compatibility: Minimum PHP raised to 8.0; confirmed clean on PHP 8.4.
- Improvement: Plugin now self-manages update notices via built-in updater -- badges appear in Dashboard -> Updates, Plugins list, and admin bar.
- Fix: Removed deprecated
mysql_get_server_info()fallback (removed in PHP 7). - Fix: Updated PHP version threshold in System Status from 7.2 to 8.0.
- Fix: Replaced hardcoded version string in admin header with live WordPress.org API lookup (cached 12 hours).
- Fix: Used
version_compare()instead of loose string comparison. - Fix: Removed defunct Google+ author contact field (service shut down 2019).
- Fix: Updated all
http://links in System Status tohttps://.
- Compatibility: Full Gutenberg block editor compatibility.
- Fix: Strip extra paragraph and break tags from shortcode output.
- Feature: Post view count tracking and display.
- Feature: Additional author profile fields.
- Fix: Nonce verification for post format meta boxes.
- Initial release.
Contributions are welcome. Please open an issue first to discuss what you would like to change.
- Fork the repository
- Create your feature branch (
git checkout -b feature/my-feature) - Commit your changes (
git commit -m 'Add my feature') - Push to the branch (
git push origin feature/my-feature) - Open a Pull Request
NEOVANTAGE Core and the NEOVANTAGE theme are built by Mohsin Rafique, a WordPress developer and open-source contributor operating as PixelsPress.
If this plugin demonstrates the kind of work you are looking for -- clean PHP, security-first coding, WordPress best-practice architecture -- Mohsin is available for hire.
What he builds:
- Custom WordPress themes and companion plugins
- PHP 8.x-compatible WordPress code audits and rewrites
- Performance, security, and WP coding standards reviews
- WordPress plugin and theme development for agencies and product companies
Get in touch:
- Website: pixelspress.com
- GitHub: github.com/mohsin-rafique
- WordPress.org: profiles.wordpress.org/mohsinrafique
- WordPress.org forum: wordpress.org/support/theme/neovantage
- GitHub issues: github.com/mohsin-rafique/neovantage-core/issues
- Documentation: pixelspress.com/article-categories/neovantage/
NEOVANTAGE Core -- Copyright (C) 2016-2026 PixelsPress
Licensed under the GNU General Public License v2.0 or later.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU GPL as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.
Made with β€οΈ by PixelsPress | mohsin-rafique