=== NextGEN Facebook - Social + SEO Meta Tags for Facebook, Google, Pinterest, Twitter & More ===
Plugin Name: NextGEN Facebook (NGFB)
Plugin Slug: nextgen-facebook
Text Domain: nextgen-facebook
Domain Path: /languages
License: GPLv3
License URI: https://www.gnu.org/licenses/gpl.txt
Assets URI: https://surniaulula.github.io/nextgen-facebook/assets/
Tags: facebook, share buttons, social sharing, open graph, twitter, pinterest, google, linkedin, youtube, embedded video, seo, nextgen gallery
Contributors: jsmoriss
Requires At Least: 3.7
Tested Up To: 4.7.3
Stable Tag: 8.40.7-1
Accurate meta tags for awesome looking shares on Facebook, Google, Pinterest, Twitter, etc - no matter how URLs are shared or re-shared!
== Description ==
NGFB uses your existing content to generate meta tags and Schema markup — there's no need to manually enter / configure any additional settings or values, but if you want to, you can customize just about anything and everything. ;-)
NGFB creates complete and accurate social meta tags and Schema markup — including the usual titles, descriptions, hashtags, and images, but also videos, e-commerce products, author profile / authorship, co-authors, publisher information, ratings, event details, recipe information, and much more — all from your existing content.
NGFB provides special support and optimization features for Pinterest — offering customized Pinterest image sizes and avoiding conflicts between incompatible Pinterest and Facebook / Open Graph meta tag values.
NGFB includes advanced quality control checks and features — verifying minimum / maximum image dimensions and aspect ratios, checking the webpage for duplicate meta tags, showing warnings for missing and required images, and theme header template validation for suggested markup.
= Quick List of Features = **NextGEN Facebook (NGFB) Free / Basic Features** * Adds Open Graph meta tags for Facebook, Google+, Pinterest, LinkedIn, etc. * Adds Twitter Card meta tags: * [Summary Card with Large Image](https://dev.twitter.com/cards/types/summary-large-image) * [Summary Card](https://dev.twitter.com/cards/types/summary) * [Player Card](https://dev.twitter.com/cards/types/player) is available in the Pro version (requires video discovery modules, provided with the Pro version). * Adds Weibo meta tags for article creation and update dates. * Adds Pinterest Rich Pin meta tags and Schema [Structured Data](https://developers.google.com/search/docs/guides/intro-structured-data) markup for Google. * Adds author (Person), publisher (Organization) and WebSite markup for Google Search and Knowledge Graph, including markup for the [Google Sitelinks Searchbox](https://developers.google.com/search/docs/data-types/sitelinks-searchbox). * Customizable image dimensions for Facebook / Open Graph, Pinterest, Schema and all Twitter Card types. * Auto-regeneration of inaccurate / missing WordPress image sizes. * Support for Automattic's [Accelerated Mobile Pages (AMP)](https://wordpress.org/plugins/amp/) plugin. * Support for featured, attached, gallery shortcode, and/or image HTML tags in content. * Fallback to image alt values if the content and excerpt does not include any text. * Optional fallback to a default image and video for index and search webpages. * Configurable title separator character (hyphen by default). * Configurable title and description lengths (Open Graph, Twitter Card, SEO). * Includes author, co-author / contributor and publisher markup for Facebook, Pinterest and Google. * Includes WordPress tags as hashtags (including a configurable maximum). * Includes a Google / SEO description meta tag (if an SEO plugin is not detected). * Configurable website / business social accounts for Schema markup: * Facebook Business Page URL * Google+ Business Page URL * Pinterest Company Page URL * Twitter Business @username * Instagram Business URL * LinkedIn Company Page URL * MySpace Business (Brand) URL * User profile contact fields for Open Graph, Twitter Card, and Schema markup: * Facebook URL * Google+ URL * Instagram URL * LinkedIn URL * MySpace URL * Pinterest URL * Skype Username * Tumblr URL * Twitter @username * YouTube Channel URL * Customizable **multilingual** / multi-language Site Title and Site Description texts. * Contextual help for *every* plugin option and [comprehensive online documentation](https://surniaulula.com/codex/plugins/nextgen-facebook/). * Uses object and transient caches to provide incredibly fast execution speeds. * Include / exclude each social share button based on the viewing device (desktop and/or mobile). * Social share buttons for the content, excerpt, in a widget, as a shortcode, floating sidebar, and/or PHP function. * Buffer * Email * Facebook * Google+ * LinkedIn * ManageWP * Pinterest * Reddit * StumbleUpon * Tumblr * Twitter * WhatsApp (for Mobile Devices)Don't need the included social share buttons?
The WordPress Social Sharing Optimization (WPSSO) plugin is a fork / child of NextGEN Facebook (NGFB) — they have the same author, the same solid core features and code-base, but WPSSO is distributed without the social share buttons and their related features. Additional Free extension plugins are also available for WPSSO, including two different types of sharing button extensions:
Download the Free version from GitHub or WordPress.org.
Purchase the Pro version (includes a No Risk 30 Day Refund Policy).
= Free / Basic Version Repository = * [GitHub](https://surniaulula.github.io/nextgen-facebook/) * [WordPress.org](https://wordpress.org/plugins/nextgen-facebook/developers/) = Version Numbering Scheme = Version components: `{major}.{minor}.{bugfix}-{stage}{level}` * {major} = Major code changes / re-writes or significant feature changes. * {minor} = New features / options were added or improved. * {bugfix} = Bugfixes or minor improvements. * {stage}{level} = dev < a (alpha) < b (beta) < rc (release candidate) < # (production). Note that the production stage level can be incremented on occasion for simple text revisions and/or translation updates. See [PHP's version_compare()](http://php.net/manual/en/function.version-compare.php) documentation for additional information on "PHP-standardized" version numbering. = Changelog / Release Notes = **Version 8.40.7-1 (2017/03/31)** * *New Features* * None * *Improvements* * Added tabindex values to the Extension Plugins and Pro Licenses settings page options. * *Bugfixes* * Fixed the checkbox column width in post/page table lists. * Fixed a missing check for $read_cache when creating the meta tag array. * *Developer Notes* * Added several new functions to retrieve the $mod array: * ngfb_get_page_mod( $use_post = false ) * ngfb_get_post_mod( $post_id ) * ngfb_get_term_mod( $term_id ) * ngfb_get_user_mod( $user_id ) * Renamed the NgfbWebpage class to NgfbPage, and renamed the Ngfb $webpage variable to $page ($webpage is now a reference to $page for backwards compatibility). * Moved shortcode instantiation from the NgfbPage class to Ngfb, and moved the NgfbPage $shortcode variable to Ngfb $sc. * Added a SucomForm get_post_type_checkboxes() method to create a checkbox list for public post types. * Added NgfbPost get_og_type_reviews() and get_og_review_mt() methods to create review meta tags for the WooCommerce module. * Renamed the NgfbOpenGraph get_the_media_info() method to get_media_info(). * Renamed the offers, rating, and reviews filters that enable/disable the addition of meta tags: * 'ngfb_og_add_product_mt_offers' to 'ngfb_og_add_mt_offers' * 'ngfb_og_add_product_mt_rating' to 'ngfb_og_add_mt_rating' * 'ngfb_og_add_product_mt_reviews' to 'ngfb_og_add_mt_reviews' **Version 8.40.6-1 (2017/03/25)** * *New Features* * None * *Improvements* * Added support for Schema Organization types that are also Schema Local Business types. * Added checkbox options for the NGFB Schema, Img, and Desc columns for the Media Library Item List (Pro version). * Improved the layout of NGFB Schema, Img, and Desc column checkbox options on the Advanced settings page. * *Bugfixes* * Fixed the missing 'opens' and 'closes' properties for https://schema.org/OpeningHoursSpecification. * Fixed / improved the jQuery datepicker class search to avoid possible conflicts. * Fixed the "Clear All Cache" link in the notice when saving the plugin settings. * *Developer Notes* * Added Schema LocalBusiness to Thing > Organization > LocalBusiness as a cross-reference in the Schema Types array. * Added a unique @id property for top-level Schema JSON-LD markup. * Updated the minimum / recommended versions for: * PHP v5.4 / v7.0 (see http://php.net/supported-versions.php) **Version 8.40.5-1 (2017/03/19)** * *New Features* * None * *Improvements* * Added the 'og:updated_time' meta tag for post objects. * Adjusted the plugin init sequence to load the configuration (at init -10) before the 'widget_init' action (at init 1). * *Bugfixes* * Added a missing check for the "Use Filtered (SEO) Title" option value before returning the SEO Framework title (Pro version). * Fixed a widget load issue when the NGFB_SOCIAL_SHARING_DISABLE constant is enabled. * *Developer Notes* * Updated the NgfbWebpage get_description() method to use term ids for tags and categories (provides compatibility for the admin back-end). **Version 8.40.4-1 (2017/03/15)** * *New Features* * Added a new "Clear Post Cache for Comment" option on the Advanced settings page (Pro version). * *Improvements* * Added filtering to replace illegal characters in an Authentication ID string with regular dashes. * Replaced the "(settings value)" text shown for options in the Social Settings metabox with the actual default value. * *Bugfixes* * Corrected the 'get_shortlink' hook registration from an action to a filter. * Fixed an incorrect argument type cast in the NgfbMeta get_custom_fields() method (Pro version). * *Developer Notes* * Renamed / moved the SucomWebpage class in lib/com/webpage.php to NgfbWebpage in lib/webpage.php. * Renamed the "ngfb:mark" meta tags to unique "ngfb:mark:begin" and "ngfb:mark:end" meta tags (used to exclude wpsso meta tags when checking the header for duplicate meta tags). **Version 8.40.3-1 (2017/03/10)** * *New Features* * Added a new Open Graph "Product Condition" option to the Social Settings metabox. * *Improvements* * Added support for a WooCommerce "Condition" product attribute (Pro version). * Added new Open Graph product meta tags if returned by an e-commerce integration module (Pro version): * product:condition * product:weight:value * product:weight:units * *Bugfixes* * None * *Developer Notes* * Added a new NgfbConfig $cf['head']['og_content_map'] array to swap Schema meta tag values to their simpler Open Graph counterparts. * Updated the minimum / recommended versions for: * WordPress v3.7 / v4.7.3 (see https://codex.wordpress.org/Supported_Versions?nocache=1) * PHP v5.3 / v5.6 (see http://php.net/supported-versions.php) **Version 8.40.2-1 (2017/03/06)** * *New Features* * None * *Improvements* * Added a new "Default Post / Page Type" option in the General > Open Graph settings page (default value is "article"). * *Bugfixes* * None * *Developer Notes* * Refactored the SucomUtil is_home_page(), is_post_page(), and get_post_object() methods. * Added a new SucomUtil is_home_index() method - returns true for a static posts page (not the static front page) and the standard home index / archive page. * Added a new SucomUtil is_amp() method to replace calls to the AMP plugin is_amp_endpoint() function. * Moved the lib/com/style.php and lib/com/script.php files to lib/style.php and lib/script.php. * Added a new NgfbConfig $cf['menu'] array. * Added a new NgfbConfig $cf['edit']['columns'] array. * Added a new NgfbMeta get_column_meta_keys() static method. * Changed the NgfbMeta get_sortable_columns() method to a static method. * Added a new NgfbUtil delete_all_column_meta() method. * Added a call to NgfbUtil delete_all_column_meta() in the clear_all_cache() method. **Version 8.40.1-2 (2017/02/27)** * *New Features* * None * *Improvements* * None * *Bugfixes* * Added a missing hook to load the network admin menu objects. * Delayed plugin init to allow custom post types to be defined first. * *Developer Notes* * None **Version 8.40.0-1 (2017/02/26)** * *New Features* * Added new product options in the Social Settings metabox (Pro version): * Product Availability * Product Price and Currency * Added new custom field options in the Advanced settings page (Pro version): * Product Availability Custom Field * Product Price Custom Field * Product Currency Custom Field * *Improvements* * Adjusted the admin CSS to define a default width for WooCommerce product SKU, Stock, and Price table columns. * Improved loading sequence of the plugin textdomain. * *Bugfixes* * Fixed the missing 'og:video:type' meta tag for self-hosted videos (Pro version). * Fixed the NgfbSchema get_schema_type_context() method to provide correct JSON-LD syntax for Schema extensions (see https://schema.org/docs/extension.html). * *Developer Notes* * Refactored the Easy Digital Downloads (EDD), MarketPress, WooCommerce, and WP e-Commerce modules to provide and use custom meta for product availability, price, and currency (Pro version). * Refactored the NgfbMeta get_custom_fields() method to get custom field names from the config array. * Added a new NgfbOpenGraph get_og_type() method. * Added transient caching to the NgfbSchema get_schema_type_parents() and get_schema_type_children() methods. * Renamed the NgfbSchema get_schema_type_css_classes() method to get_children_css_class(). * Renamed the 'ngfb_head_use_post' filter to 'ngfb_use_post'. * Removed the forced variable reference for the $mod argument in NgfbOpenGraph methods. * **BREAKING CHANGE** — removed the `$use_post` argument from the following filters (current filter arguments shown): * 'ngfb_link_rel' ( $link_rel, $mod ); * 'ngfb_meta_name' ( $mt_name, $mod ); * 'ngfb_og' ( $og, $mod ); * 'ngfb_og_edd' ( $og_ecom, $mod ); * 'ngfb_og_marketpress' ( $og_ecom, $mod ); * 'ngfb_og_seed' ( $og, $mod ); * 'ngfb_og_woocommerce' ( $og_ecom, $mod ); * 'ngfb_og_wpecommerce' ( $og_ecom, $mod ); * 'ngfb_tc' ( $tc, $mod ); * 'ngfb_tc_seed' ( $tc, $mod ); * Improved input sanitation checks and debugging error messages in the video modules (Pro version). * Renamed and moved the SucomException class from lib/com/exception.php to NgfbException in lib/exception.php. **Version 8.39.9-1 (2017/02/19)** * *New Features* * None * *Improvements* * None * *Bugfixes* * None * *Developer Notes* * Renamed a few site related option keys: * 'og_site_name' => 'site_name' * 'og_site_description' => 'site_desc' * 'org_url' => 'site_url' * 'org_type' => 'site_org_type' * 'org_place_id' => 'site_place_id' * Added a new NgfbSchema get_site_organization() method to return the site organization array. * Added a new SucomUtil get_site_alt_name() method. * Added a new SucomUtil get_site_url() method. * Improved the SucomUtil rename_keys() method to include localized keys. * Added new filters when renaming options keys: * 'ngfb_rename_options_keys' ( $options_keys ); * 'ngfb_rename_site_options_keys' ( $options_keys ); * 'ngfb_rename_md_options_keys' ( $options_keys ); **Version 8.39.8-1 (2017/02/13)** * *New Features* * None * *Improvements* * Added a check (and fix) for relative URLs coming from the WordPress Media Library. * Removed a check for NGFB option values before disabling the Yoast SEO JSON-LD (now always disabled). * Added the missing Schema type https://schema.org/HighSchool. * *Bugfixes* * None * *Developer Notes* * Added new json data filters for single properties: * 'ngfb_json_data_single_event' ( $event_data, $mod, $event_id ); * 'ngfb_json_data_single_organization' ( $org_data, $mod, $org_id ); * 'ngfb_json_data_single_organization_sameas' ( $org_sameas, $mod, $org_id ); * 'ngfb_json_data_single_person' ( $person_data, $mod, $user_id ); * 'ngfb_json_data_single_person_sameas' ( $person_sameas, $mod, $user_id ); * 'ngfb_json_data_single_place' ( $place_data, $mod, $place_id ); **Version 8.39.7-1 (2017/02/08)** * *New Features* * None * *Improvements* * Added a filter to define the WooCommerce shop page as a CollectionPage for Schema markup (Pro version). * *Bugfixes* * None * *Developer Notes* * Optimized the printing of debug log messages in the webpage HTML by using fewer action hooks. * Added WooCommerce product reviews to the meta tags array (Pro version). * Renamed the 'ngfb_og_add_product_mt_offer' filter to 'ngfb_og_add_product_mt_offers' (Pro version). * Added a new 'ngfb_og_add_product_mt_reviews' filter (Pro version). **Version 8.39.6-1 (2017/02/04)** * *New Features* * None * *Improvements* * Added a distinct / separate div container for the buttons preset ID. * Added CSS for the large_share_vertical preset ID in the default widget buttons stylesheet. * Added a "Reload Default Sizes" button on the WordPress Settings > Social and SEO Image Dimensions page. * Added new auto Schema types from https://auto.schema.org/: * https://auto.schema.org/BusOrCoach * https://auto.schema.org/Car * https://auto.schema.org/Motorcycle * https://auto.schema.org/MotorizedBicycle * https://auto.schema.org/Vehicle * Forced the 'og:type' of the static front page to 'website' instead of 'article'. * *Bugfixes* * None * *Developer Notes* * Renamed the 'tc_sum' image dimention option keys to 'tc_sum_img'. * Renamed the 'tc_lrgimg' image dimention option keys to 'tc_lrg_img'. * Renamed the 'schema_img_article' image dimention option keys to 'schema_article_img'. **Version 8.39.5-1 (2017/01/30)** * *New Features* * None * *Improvements* * Added the title and description of WordPress Media Library images to the Schema "ImageObject" markup. * *Bugfixes* * None * *Developer Notes* * Simplified the reading of custom Yoast SEO meta by hooking NGFB filters from a single NgfbProUtilWpseoMeta class (Pro version). * Refactored the SucomWebpage get_title() method to return titles based on the object ID (not just the current page). * Added a $term_id argument to the SucomUtil is_term_page(), is_category_page(), and is_tag_page() methods. * Added a $user_id argument to the SucomUtil is_author_page() and is_user_page() arguments. **Version 8.39.4-1 (2017/01/27)** * *New Features* * None * *Improvements* * Updated the default YouTube preview image name to maxresdefault.jpg and added a source query argument to the preview image URLs (Pro version). * *Bugfixes* * Fixed updating the default YouTube video preview image URL from the retrieved video meta tags (Pro version). * *Developer Notes* * Added extra logging of the matched video array in all video modules (Pro version). **Version 8.39.3-1 (2017/01/26)** * *New Features* * None * *Improvements* * None * *Bugfixes* * Added a missing second argument for the NgfbUtil clear_cache_objects() method when clearing the cache for updated terms and users. * *Developer Notes* * None **Version 8.39.2-1 (2017/01/25)** * *New Features* * None * *Improvements* * Added a new "Clear Short URLs on Clear All Cache" option (default is unchecked) to preserve or clear shortened URLs when clearing all NGFB cache transients (Pro version). The default value prevents updating all shortened URLs at once, which may exceed API call limits imposed by your shortening service provider. * Changed the default "Shortened URL Cache Expiry" option value from 604800 seconds (1 week) to 2419200 seconds (4 weeks). * Removed the "List Column Content Cache Expiry" deprecated option (no longer used). * Added the plugin text domain to SucomCache class error messages. * *Bugfixes* * None * *Developer Notes* * Renamed the 'plugin_cache_info' option key to 'plugin_show_purge_count'. **Version 8.39.1-1 (2017/01/21)** * *New Features* * None * *Improvements* * Improved the loading speed of post, term, and user editing table column content (NGFB Schema, NGFB Img, and NGFB Desc columns). * Refactored the set_force_regen() and is_force_regen() methods to use a single transient array (to reduce the number of transient queries). * *Bugfixes* * Updated delete_expired_db_transients() to remove transients without expiration times. * Added a missing user ID argument when getting the user object in the SucomWebpage get_description() method. * Fixed use of a thumbnail image in the NGFB Img column instead of the original Open Graph og:image. * *Developer Notes* * Added a new is_force_regen() method in the NgfbUtil class to check if the forced regen transient is set, along with a set_force_regen() method to set the transient, and get_force_regen_key() to determine the array key ID. * Added a new is_post_exists() static method in the SucomUtil class to check if a post ID exists or not. * Added support for post ID checking in the is_post_page() method in the SucomUtil class. * Renamed the 'schema_id' sortable column and meta name to 'schema_type' (including related filter hooks). * Replaced column content creation filters / methods by 'get_{post|term|user}_metadata' filter hooks to return pre-generated custom meta values instead. * Removed the 'ngfb_cache_expire_column_content' filter (a transient is no longer required for column content). **Version 8.39.0-1 (2017/01/13)** * *New Features* * Added a new "Add NGFB Schema Column in" option (for posts / pages, terms, and users) in the NGFB Advanced settings page (enabled by default). * *Improvements* * None * *Bugfixes* * None * *Developer Notes* * Added a new SucomUtil get_dashicons() static method to retrieve a sorted/unsorted dashicons array. * Re-added code to support the Yoast_Notification_Center class from older Yoast SEO versions. **Version 8.38.3-1 (2017/01/08)** * *New Features* * None * *Improvements* * Added both parent and child theme header template files to the head HTML element attributes check. * The extensions listed on the "Extension Plugins and Pro Licenses" settings page are now sorted by name. * *Bugfixes* * None * *Developer Notes* * Refactored the SucomUtil is_https() method and added a check for proxy / load-balancing 'HTTP_X_FORWARDED_PROTO' and 'HTTP_X_FORWARDED_SSL' web server variables. * Refactored the SucomUtil get_prot() method to support the FORCE_SSL and FORCE_SSL_ADMIN constants. **Version 8.38.2-1 (2017/01/02)** * *New Features* * None * *Improvements* * Added a new "Honor the FORCE_SSL Constant" option on the Advanced settings page. * *Bugfixes* * None * *Developer Notes* * Added a check and action hook to honor the FORCE_SSL constant on the front-end. **Version 8.38.1-1 (2016/12/28)** * *New Features* * None * *Improvements* * The "Read Yoast SEO Custom Meta" option is now enabled by default, if the Yoast SEO plugin is active or its settings are found in the database, otherwise it is disabled by default (Pro version). * *Bugfixes* * None * *Developer Notes* * Added a new NgfbFilters class to centralize 3rd party plugin filter hooks. * Added a new NgfbUtil get_canonical_url() method specifically for the canonical meta tag. * Added a new 'ngfb_canonical_url' filter to allow filtering of canonical and sharing URLs separately. **Version 8.38.0-1 (2016/12/24)** * *New Features* * Added a new "Read Yoast SEO Social Meta" option for Yoast SEO users under the NGFB > Advanced > Social / Custom Meta tab (Pro version). * Added a new "Custom Facebook Locale" option in the NGFB > General settings page to customize the WordPress locale value for Facebook. * *Improvements* * Removed the "Verify Peer SSL Certificate" option as this feature should always be enabled anyway. * *Bugfixes* * Fixed fetching of image size for a custom Schema image URL. * *Developer Notes* * Removed the share/curl/ca-bundle.crt file to use the wordpress/wp-includes/certificates/ca-bundle.crt file instead. * Added a check for positive numbers when adding Schema image size properties. **Version 8.37.8-1 (2016/12/12)** * *New Features* * None * *Improvements* * None * *Bugfixes* * Fixed the Reddit button title by adding the title non-encoded. * *Developer Notes* * Renamed the `NGFB_OPTIONS_#_*` multisite single-option constants to `NGFB_ID_#_OPT_*` and optimized their checks. * Added a new SucomUtil explode_csv() static method to explode and trim CSV strings. **Version 8.37.7-1 (2016/12/08)** * *New Features* * None * *Improvements* * Added support for the new get_user_locale() function in WordPress v4.7. * Updated the Facebook share button with latest Facebook options (see https://developers.facebook.com/docs/plugins/share-button for details). * Markup Language * Button Layout * Button Size * Mobile iFrame * Removed the Facebook "Default Content Language" option from the Essential and General settings pages (not required for the og:locale value). * *Bugfixes* * Fixed the "Click here update header templates automatically" URL in the notice message. * *Developer Notes* * None **Version 8.37.6-3 (2016/12/05)** * *New Features* * None * *Improvements* * Optimized wp_cache and transient caching for multilingual sites. * Added new Schema meta tags: * alternatename * email * telephone * currenciesaccepted * paymentaccepted * pricerange * preptime * cooktime * *Bugfixes* * Fixed the sharing URL value for BuddyPress users (Pro version). * *Developer Notes* * Added an SucomUtil update_transient_array() method to update transient arrays and keep the original transient expiration time. * Added a new 'ngfb_json_prop_https_schema_org_potentialaction' filter. * Removed $locale argument from SucomUtil get_mod_salt() calls. **Version 8.37.5-1 (2016/11/28)** * *New Features* * None * *Improvements* * None * *Bugfixes* * Fixed BuddyPress user page detection when current object is a post (Pro version). * *Developer Notes* * Added extra debugging messages in the BuddyPress user class methods (Pro version). **Version 8.37.4-1 (2016/11/25)** * *New Features* * None * *Improvements* * None * *Bugfixes* * Fixed an incorrect variable name in the WhatsApp class which prevented the button HTML from being added. * Fixed the Tumblr caption, title, and description attribute values that were being added without being properly encoded. * *Developer Notes* * Added a check for 'manage_options' permission before checking for outdated WP / PHP versions and duplicate post meta tags. * Removed a call to stripslashes() when saving HTML / CSS / JS code. * Refactored the Twitter button class to use the $mod variable instead of the global $post. * Renamed the 'buttons_use_social_css' option key to 'buttons_use_social_style'. * Renamed the 'buttons_enqueue_social_css' option key to 'buttons_enqueue_social_style'. **Version 8.37.3-1 (2016/11/17)** * *New Features* * None * *Improvements* * Updated the "Plugin Setup Guide and Notes". * Updated hard minimum and recommended minimum WordPress and PHP versions. * WordPress v3.7 (hard minimum) and v4.2 (recommended minimum). See [WordPress Supported Versions](https://codex.wordpress.org/Supported_Versions) for details. * PHP v5.2 (hard minimum) and v5.4 (recommended minimum). See [PHP Supported Versions](http://php.net/supported-versions.php) for details. * Added a "Reference URL" link to notice messages when generating the head meta tag array. * *Bugfixes* * None * *Developer Notes* * Added a sharing URL argument to the SucomUtil get_mod_salt() method for cases where the $mod id is false. * Renamed the 'ngfb_json_array_schema_type_ids' filter to 'ngfb_json_array_schema_page_type_ids' to emulate the $page_type_id variable name. * Removed the deprecated $use_post argument from the get_array() methods for the Open Graph, Twitter Card, and Weibo classes. **Version 8.37.2-1 (2016/11/12)** * *New Features* * None * *Improvements* * Added an "Item Type for Blog Front Page" option for blog (non-static) front pages. * Simplified the Schema mainEntityOfPage markup property by using a URL instead of an @id. * *Bugfixes* * None * *Developer Notes* * Refactored the NgfbSchema class to provide a public get_json_data() method for other classes. * Added NgfbPost get_posts(), NgfbTerm get_posts(), and NgfbUser get_posts() methods. * Added a NgfbMeta get_posts_mods() method to return `$mod` arrays for all posts in the current archive page. * Added a NgfbSchema get_json_data() method used by get_json_array() in the same class. * Renamed the NgfbSchema get_head_item_type() method to get_mod_schema_type(). * Renamed the NgfbSchema get_item_type_context() method to get_schema_type_context(). **Version 8.37.0-1 (2016/11/04)** * *New Features* * Replaced the Object Cache Expiry option with new options for finer control of caching features. * Head Markup Array Cache Expiry (default 3 days). * Shortened URL Cache Expiry (default 1 week). * List Column Content Cache Expiry (default 1 week). * Filtered Content Text Cache Expiry (default 1 hour). * Get Image (URL) Size Cache Expiry (default 1 day). * Article Topics Array Cache Expiry (default 4 weeks). * Schema Types Array Cache Expiry (default 4 weeks). * Sharing Buttons Cache Expiry (default 1 week). * *Improvements* * Replaced the "Social File Cache Expiry" drop-down (in hours) with an input field (in seconds). * *Bugfixes* * Fixed the SucomUtil get_first_last_next_nums() method, which was not returning a correct 'next' number for single element arrays. * *Developer Notes* * Refactored the NgfbShortcodeSharing and NgfbWidgetSharing classes to optimize caching performance. * Refactored the ngfb_get_sharing_buttons() function to optimize caching performance. * Added a new NgfbSharing get_buttons_cache_index() method to cache social sharing buttons HTML as array elements. This optimizes the cache by storing one transient instead of one transient per social sharing buttons location within the same webpage. * Refactored the NgfbSchema get_json_array() method for a slight performance improvement. * Added https://schema.org/Thing to the Schema Types array (as top-level parent for all other Schema types). * Replaced the `$user_id` argument in all JSON data and property filters by the Schema `$type_id`. * Renamed the 'ngfb_json_data_https_schema_org' filter to 'ngfb_json_data_https_schema_org_thing'. * Renamed the 'ngfb_json_array_type_ids' filter to 'ngfb_json_array_schema_type_ids'. * Removed the 'ngfb_add_json_https_schema_org' filter. * Renamed the 'ngfb_shortcode_ngfb' filter to 'ngfb_sharing_shortcode_ngfb'. * Renamed the NGFB_META_TAGS_DISABLE contant to NGFB_HEAD_HTML_DISABLE. * Renamed the NGFB_SHARING_SHORTCODE contant to NGFB_SHARING_SHORTCODE_NAME. * Removed the NGFB_TRANSIENT_CACHE_DISABLE, NGFB_OBJECT_CACHE_DISABLE and NGFB_FILE_CACHE_DISABLE constants. * Added several new filters to adjust transient / object cache expiration: * 'ngfb_cache_expire_article_topics' ( $secs ); * 'ngfb_cache_expire_column_content' ( $secs ); * 'ngfb_cache_expire_content_text' ( $secs ); * 'ngfb_cache_expire_head_array' ( $secs ); * 'ngfb_cache_expire_image_url_size' ( $secs ); * 'ngfb_cache_expire_schema_types' ( $secs ); * 'ngfb_cache_expire_sharing_buttons' ( $secs ); * 'ngfb_cache_expire_shorten_url' ( $secs ); // Pro version * 'ngfb_cache_expire_social_file' ( $secs ); **Version 8.36.3-2 (2016/10/23)** * *New Features* * None * *Improvements* * None * *Bugfixes* * Fixed HTML table syntax in the Tumblr settings metabox. * *Developer Notes* * Minimum requirements updated to WP v3.5 and PHP v5.4. * Renamed the Social Settings 'header' index name to 'text'. * Renamed the 'ngfb_admin_post_header' filter to 'ngfb_admin_post_head'. * Renamed the NgfbHead get_header_array() method to get_head_array(). * Added a new NgfbHead get_head_index() method to cache meta tags as array elements. This optimizes the head meta transient cache for Pinterest by storing 1 transient instead of 2. **Version 8.36.2-1 (2016/10/17)** * *New Features* * None * *Improvements* * Changed all http://surniaulula.com/ URLs to https. * Added transient caching of results when fetching size information for image URLs. * *Bugfixes* * None * *Developer Notes* * None **Version 8.36.0-1 (2016/10/15)** * *New Features* * Added new Item Type options under the Google / Schema tab in the General settings page: * Item Type for Archive Page (default is https://schema.org/CollectionPage) * Item Type for User / Author Page (default is https://schema.org/ProfilePage) * Item Type for Search Results Page (default is https://schema.org/SearchResultsPage) * Added a "Validate AMP Markup" button under the Social Settings metabox Validate tab for the AMP Validator. * Added a "Validate HTML Markup" button under the Social Settings metabox Validate tab for the W3C Markup Validation service. * Added a configurable length warning for the Open Graph description textarea (defaults is 300 characters hard limit, and 200 characters soft limit). * *Improvements* * Added the https://schema.org/WebPage sub-types in the plugin config schema_type array (AboutPage, CheckoutPage, CollectionPage, ContactPage, ItemPage, ProfilePage, QAPage, and SearchResultsPage). * *Bugfixes* * Fixed getting the term object (category and tags) when no term ID is provided to the SucomUtil get_term_object() method. * Removed the Open Graph namespace from the HTML tag attributes when using the AMP plugin. * *Developer Notes* * Removed the NGFB_DEFAULT_AUTHOR_OPTIONS constant, and all associated default author options. * Renamed all http://schema.org URLs to https://schema.org and all http_schema_org filters to https_schema_org. == Upgrade Notice == = 8.40.7-1 = (2017/03/31) Fixed the checkbox column width in post/page table lists. Added several new functions to retrieve the $mod array. Renamed the NgfbWebpage class to NgfbPage. = 8.40.6-1 = (2017/03/25) Added support for Schema Organization types that are also Schema Local Business types. Fixed the missing 'opens' and 'closes' properties for https://schema.org/OpeningHoursSpecification. Improved the layout of NGFB Schema, Img, and Desc column checkbox options on the Advanced settings page. = 8.40.5-1 = (2017/03/19) Added the 'og:updated_time' meta tag for post objects. Added a missing check for "Use Filtered (SEO) Title" before returning the SEO Framework title (Pro version). = 8.40.4-1 = (2017/03/15) Added a new "Clear Post Cache for Comment" option on the Advanced settings page (Pro version). Replaced the "(settings value)" text shown for options in the Social Settings metabox with the actual default value. = 8.40.3-1 = (2017/03/10) Added "Product Condition" option to Social Settings metabox. Added support for a WooCommerce "Condition" product attribute (Pro version). Added new Open Graph product meta tags (Pro version). Updated minimum/required WP and PHP versions. = 8.40.2-1 = (2017/03/06) Added a new "Default Post / Page Type" option in the Open Graph settings page. Refactored the SucomUtil is_home_page(), is_post_page(), and get_post_object() methods. = 8.40.1-2 = (2017/02/27) Added a missing hook to load the network admin menu objects. Delayed plugin init to allow custom post types to be defined first. = 8.40.0-1 = (2017/02/26) Added new options for product Availability, Price, and Currency. Fixed a missing 'og:video:type' meta tag for self-hosted videos (Pro version). Fixed a NgfbSchema method to provide correct Schema context for Schema extensions. = 8.39.9-1 = (2017/02/19) Renamed site related options keys and added a few methods to return various site information (organization array, alternate name, and url). = 8.39.8-1 = (2017/02/13) Added a check (and fix) for relative URLs coming from the WordPress Media Library. Removed a check for NGFB option values before disabling Yoast SEO JSON-LD (now always disabled). = 8.39.7-1 = (2017/02/08) Added a filter to define the WooCommerce shop page as a CollectionPage. Optimized the printing of debug log messages. = 8.39.6-1 = (2017/02/04) Added a distinct / separate div container for the buttons preset ID. Added a "Reload Default Sizes" button on the Social and SEO Image Dimensions page. Added new auto Schema types from https://auto.schema.org/. = 8.39.5-1 = (2017/01/30) Added the title and description of WordPress Media Library images to the Schema "ImageObject" markup. Simplified the reading of custom Yoast SEO meta by hooking NGFB filters from a single NgfbProUtilWpseoMeta class (Pro version). = 8.39.4-1 = (2017/01/27) Updated the default YouTube preview image name to maxresdefault.jpg and added a source query argument to the preview image URLs (Pro version). = 8.39.3-1 = (2017/01/26) Added a missing second argument for the NgfbUtil clear_cache_objects() method when clearing the cache for updated terms and users. = 8.39.2-1 = (2017/01/25) Added a new "Clear Short URLs on Clear All Cache" option (default is unchecked) to preserve or clear shortened URLs. The default value prevents updating all shortened URLs at once, which may exceed API call limits imposed by your shortening service provider. = 8.39.1-1 = (2017/01/21) Improved the loading speed of post, term, and user editing table column content (NGFB Schema, NGFB Img, and NGFB Desc columns). = 8.39.0-1 = (2017/01/13) Added a new "Add NGFB Schema Column in" option for posts / pages, terms, and users edit tables. Re-added code to support the Yoast_Notification_Center class from older Yoast SEO versions. = 8.38.3-1 = (2017/01/08) Added both parent and child theme header template files to the head HTML element attributes check. Refactored the SucomUtil is_https() and get_prot() methods. = 8.38.2-1 = (2017/01/02) Added a new "Honor the FORCE_SSL Constant" option on the Advanced settings page. = 8.38.1-1 = (2016/12/28) Added an NgfbFilters class to centralize 3rd party plugin filter hooks. Added a new NgfbUtil get_canonical_url() method and 'ngfb_canonical_url' filter. = 8.38.0-1 = (2016/12/24) Fixed fetching of image size for a custom Schema image URL. Removed the share/curl/ca-bundle.crt file to use the WordPress ca-bundle.crt file instead. Added new "Read Yoast SEO Social Meta" and "Custom Facebook Locale" options. = 8.37.8-1 = (2016/12/12) Fixed the Reddit button title by adding the title non-encoded. Renamed the multisite single-option constants and optimized their checks. Added a new SucomUtil explode_csv() static method. = 8.37.7-1 = (2016/12/08) Added support for the new get_user_locale() function in WordPress v4.7. Updated the Facebook share button with latest Facebook options. Fixed the "Click here update header templates automatically" URL in the notice message. = 8.37.6-3 = (2016/12/05) Fixed the sharing URL value for BuddyPress users (Pro version). Optimized wp_cache and transient caching for multilingual sites. Added a new method to update transient arrays and keep the original transient expiration time. Added several new Schema meta tags. = 8.37.5-1 = (2016/11/28) Fixed BuddyPress user page detection when current object is a post (Pro version). = 8.37.4-1 = (2016/11/25) Added a check for 'manage_options' permission before checking for outdated WP / PHP versions and duplicate post meta tags. Fixed an incorrect variable name in the WhatsApp class. Fixed the Tumblr caption, title, and description attribute values. = 8.37.3-1 = (2016/11/17) Updated the "Plugin Setup Guide and Notes". Updated hard minimum and recommended minimum WordPress and PHP versions. Added a "Reference URL" link to notice messages when generating the head meta tag array. = 8.37.2-1 = (2016/11/12) Refactored the NgfbSchema class to provide a public get_json_data() method for other classes. Added an "Item Type for Blog Front Page" option for blog (non-static) front pages. Simplified the Schema mainEntityOfPage markup property by using a URL instead of an @id. = 8.37.0-1 = (2016/11/03) Replaced the Object Cache Expiry option with new options for finer control of caching features. Refactored the Schema JSON method for a slight performance improvement. Added https://schema.org/Thing to the Schema Types array. Optimized the sharing buttons HTML cache by storing only one transient per webpage.New versions of the plugin are released approximately every week (more or less). New features are added, tested, and released incrementally, instead of grouping them together in a major version release. When minor bugs fixes and/or code improvements are applied, new versions are also released. This release schedule keeps the code stable and reliable, at the cost of more frequent updates.
See release early, release often (RERO) software development philosophy on Wikipedia for more information on the benefits of smaller / more frequent releases.