Version Description
Download this release
Release Info
| Developer | Yoast |
| Plugin | |
| Version | 3.0 |
| Comparing to | |
| See all releases | |
Code changes from version 2.7 to 3.0
- inc/ac-yoast-seo-acf-content-analysis.php +1 -2
- inc/assets.php +6 -3
- inc/dependencies/dependency-acf.php +6 -2
- js/src/app.js +49 -40
- js/src/collect/collect-v4.js +0 -22
- js/src/collect/collect.js +0 -1
- js/yoast-acf-analysis.js +65 -81
- readme.txt +14 -1
- tests/js/system/tests/acf4/relational.js +0 -58
- tests/php/unit/assets-test.php +1 -1
- vendor/autoload.php +1 -1
- vendor/composer/ClassLoader.php +1 -1
- vendor/composer/autoload_real.php +4 -4
- vendor/composer/autoload_static.php +4 -4
- yoast-acf-analysis.php +2 -2
inc/ac-yoast-seo-acf-content-analysis.php
CHANGED
|
@@ -250,8 +250,7 @@ class AC_Yoast_SEO_ACF_Content_Analysis {
|
|
| 250 |
/**
|
| 251 |
* Disable Pro fields for anything but ACF 5 pro.
|
| 252 |
*
|
| 253 |
-
* -
|
| 254 |
-
* - ACF v5 FREE on the other hand does not support these fields either.
|
| 255 |
*/
|
| 256 |
if ( ! defined( 'ACF_PRO' ) || ! ACF_PRO ) {
|
| 257 |
|
| 250 |
/**
|
| 251 |
* Disable Pro fields for anything but ACF 5 pro.
|
| 252 |
*
|
| 253 |
+
* - ACF v5 FREE does not support these fields.
|
|
|
|
| 254 |
*/
|
| 255 |
if ( ! defined( 'ACF_PRO' ) || ! ACF_PRO ) {
|
| 256 |
|
inc/assets.php
CHANGED
|
@@ -23,7 +23,7 @@ class Yoast_ACF_Analysis_Assets {
|
|
| 23 |
public function init() {
|
| 24 |
$this->plugin_data = get_plugin_data( AC_SEO_ACF_ANALYSIS_PLUGIN_FILE );
|
| 25 |
|
| 26 |
-
|
| 27 |
}
|
| 28 |
|
| 29 |
/**
|
|
@@ -38,11 +38,14 @@ class Yoast_ACF_Analysis_Assets {
|
|
| 38 |
$config = Yoast_ACF_Analysis_Facade::get_registry()->get( 'config' );
|
| 39 |
|
| 40 |
// Post page enqueue.
|
| 41 |
-
if (
|
|
|
|
|
|
|
|
|
|
| 42 |
wp_enqueue_script(
|
| 43 |
'yoast-acf-analysis-post',
|
| 44 |
plugins_url( '/js/yoast-acf-analysis.js', AC_SEO_ACF_ANALYSIS_PLUGIN_FILE ),
|
| 45 |
-
[ 'jquery',
|
| 46 |
$this->plugin_data['Version'],
|
| 47 |
true
|
| 48 |
);
|
| 23 |
public function init() {
|
| 24 |
$this->plugin_data = get_plugin_data( AC_SEO_ACF_ANALYSIS_PLUGIN_FILE );
|
| 25 |
|
| 26 |
+
add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_scripts' ], 11 );
|
| 27 |
}
|
| 28 |
|
| 29 |
/**
|
| 38 |
$config = Yoast_ACF_Analysis_Facade::get_registry()->get( 'config' );
|
| 39 |
|
| 40 |
// Post page enqueue.
|
| 41 |
+
if (
|
| 42 |
+
wp_script_is( WPSEO_Admin_Asset_Manager::PREFIX . 'post-edit' ) ||
|
| 43 |
+
wp_script_is( WPSEO_Admin_Asset_Manager::PREFIX . 'post-edit-classic' )
|
| 44 |
+
) {
|
| 45 |
wp_enqueue_script(
|
| 46 |
'yoast-acf-analysis-post',
|
| 47 |
plugins_url( '/js/yoast-acf-analysis.js', AC_SEO_ACF_ANALYSIS_PLUGIN_FILE ),
|
| 48 |
+
[ 'jquery', 'underscore' ],
|
| 49 |
$this->plugin_data['Version'],
|
| 50 |
true
|
| 51 |
);
|
inc/dependencies/dependency-acf.php
CHANGED
|
@@ -6,7 +6,7 @@
|
|
| 6 |
*/
|
| 7 |
|
| 8 |
/**
|
| 9 |
-
* Checks
|
| 10 |
*/
|
| 11 |
final class Yoast_ACF_Analysis_Dependency_ACF implements Yoast_ACF_Analysis_Dependency {
|
| 12 |
|
|
@@ -20,6 +20,10 @@ final class Yoast_ACF_Analysis_Dependency_ACF implements Yoast_ACF_Analysis_Depe
|
|
| 20 |
return false;
|
| 21 |
}
|
| 22 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 23 |
return true;
|
| 24 |
}
|
| 25 |
|
|
@@ -36,7 +40,7 @@ final class Yoast_ACF_Analysis_Dependency_ACF implements Yoast_ACF_Analysis_Depe
|
|
| 36 |
public function message_plugin_not_activated() {
|
| 37 |
$message = sprintf(
|
| 38 |
/* translators: %1$s resolves to ACF Content Analysis for Yoast SEO, %2$s resolves to Advanced Custom Fields */
|
| 39 |
-
__( '%1$s requires %2$s (free or pro) to be installed and activated.', 'acf-content-analysis-for-yoast-seo' ),
|
| 40 |
'ACF Content Analysis for Yoast SEO',
|
| 41 |
'Advanced Custom Fields'
|
| 42 |
);
|
| 6 |
*/
|
| 7 |
|
| 8 |
/**
|
| 9 |
+
* Checks whether ACF is installed.
|
| 10 |
*/
|
| 11 |
final class Yoast_ACF_Analysis_Dependency_ACF implements Yoast_ACF_Analysis_Dependency {
|
| 12 |
|
| 20 |
return false;
|
| 21 |
}
|
| 22 |
|
| 23 |
+
if ( defined( 'ACF_VERSION' ) && version_compare( ACF_VERSION, '5.7.0', '<' ) ) {
|
| 24 |
+
return false;
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
return true;
|
| 28 |
}
|
| 29 |
|
| 40 |
public function message_plugin_not_activated() {
|
| 41 |
$message = sprintf(
|
| 42 |
/* translators: %1$s resolves to ACF Content Analysis for Yoast SEO, %2$s resolves to Advanced Custom Fields */
|
| 43 |
+
__( '%1$s requires %2$s (free or pro) 5.7 or higher to be installed and activated.', 'acf-content-analysis-for-yoast-seo' ),
|
| 44 |
'ACF Content Analysis for Yoast SEO',
|
| 45 |
'Advanced Custom Fields'
|
| 46 |
);
|
js/src/app.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
/* global YoastSEO, acf,
|
| 2 |
var config = require( "./config/config.js" );
|
| 3 |
var helper = require( "./helper.js" );
|
| 4 |
var collect = require( "./collect/collect.js" );
|
|
@@ -15,58 +15,65 @@ var App = function() {
|
|
| 15 |
};
|
| 16 |
|
| 17 |
/**
|
| 18 |
-
* ACF
|
| 19 |
-
*
|
| 20 |
-
* @param {Array} fieldSelectors List of field selectors.
|
| 21 |
-
* @param {string} wysiwygSelector Element selector for WYSIWYG fields.
|
| 22 |
-
* @param {Array} fieldSelectorsWithoutWysiwyg List of fields.
|
| 23 |
*
|
| 24 |
* @returns {void}
|
| 25 |
*/
|
| 26 |
-
App.prototype.
|
| 27 |
replaceVars.updateReplaceVars( collect );
|
| 28 |
|
| 29 |
-
var
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 40 |
} );
|
| 41 |
-
}
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 45 |
};
|
| 46 |
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
* @returns {void}
|
| 51 |
-
*/
|
| 52 |
-
App.prototype.acf5Listener = function() {
|
| 53 |
-
replaceVars.updateReplaceVars( collect );
|
| 54 |
-
|
| 55 |
-
acf.add_action( "change remove append sortstop", this.maybeRefresh );
|
| 56 |
-
acf.add_action( "change remove append sortstop", replaceVars.updateReplaceVars.bind( this, collect ) );
|
| 57 |
};
|
| 58 |
|
| 59 |
App.prototype.bindListeners = function() {
|
| 60 |
if ( helper.acf_version >= 5 ) {
|
| 61 |
jQuery( this.acf5Listener.bind( this ) );
|
| 62 |
-
} else {
|
| 63 |
-
var fieldSelectors = config.fieldSelectors.slice( 0 );
|
| 64 |
-
var wysiwygSelector = "textarea[id^=wysiwyg-acf]";
|
| 65 |
-
|
| 66 |
-
// Ignore Wysiwyg fields because they trigger a refresh in Yoast SEO itself
|
| 67 |
-
var fieldSelectorsWithoutWysiwyg = _.without( fieldSelectors, wysiwygSelector );
|
| 68 |
-
|
| 69 |
-
jQuery( document ).on( "acf/setup_fields", this.acf4Listener.bind( this, fieldSelectors, wysiwygSelector, fieldSelectorsWithoutWysiwyg ) );
|
| 70 |
}
|
| 71 |
};
|
| 72 |
|
|
@@ -77,7 +84,9 @@ App.prototype.maybeRefresh = function() {
|
|
| 77 |
|
| 78 |
analysisTimeout = window.setTimeout( function() {
|
| 79 |
if ( config.debug ) {
|
|
|
|
| 80 |
console.log( "Recalculate..." + new Date() + "(Internal)" );
|
|
|
|
| 81 |
}
|
| 82 |
|
| 83 |
YoastSEO.app.pluginReloaded( config.pluginName );
|
| 1 |
+
/* global YoastSEO, acf, jQuery, */
|
| 2 |
var config = require( "./config/config.js" );
|
| 3 |
var helper = require( "./helper.js" );
|
| 4 |
var collect = require( "./collect/collect.js" );
|
| 15 |
};
|
| 16 |
|
| 17 |
/**
|
| 18 |
+
* ACF 5 Listener.
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
*
|
| 20 |
* @returns {void}
|
| 21 |
*/
|
| 22 |
+
App.prototype.acf5Listener = function() {
|
| 23 |
replaceVars.updateReplaceVars( collect );
|
| 24 |
|
| 25 |
+
var that = this;
|
| 26 |
+
|
| 27 |
+
// Use ACF Models introduced in ACF version 5.7.
|
| 28 |
+
/* eslint-disable no-unused-vars */
|
| 29 |
+
var acfModelInstance = new acf.Model( {
|
| 30 |
+
wait: "ready",
|
| 31 |
+
events: {
|
| 32 |
+
input: "onInput",
|
| 33 |
+
},
|
| 34 |
+
onInput: this.refreshAnalysisAndReplaceVars.bind( this ),
|
| 35 |
+
} );
|
| 36 |
+
/* eslint-enable no-unused-vars */
|
| 37 |
+
|
| 38 |
+
// The ACF Wysiwyg field needs to be handled after TinyMCE is initialized.
|
| 39 |
+
jQuery( document ).on( "tinymce-editor-init", function( event, editor ) {
|
| 40 |
+
/*
|
| 41 |
+
* TinyMCE supports the native `input` event but doesn't always fire it
|
| 42 |
+
* when pasting: added a specific `paste` event. Also, added TinyMCE specific
|
| 43 |
+
* events to support the undo and redo actions.
|
| 44 |
+
*/
|
| 45 |
+
editor.on( "input paste undo redo", function() {
|
| 46 |
+
that.refreshAnalysisAndReplaceVars();
|
| 47 |
} );
|
| 48 |
+
} );
|
| 49 |
+
|
| 50 |
+
/*
|
| 51 |
+
* ACF `append` global action: Triggered when new HTML is added to the page.
|
| 52 |
+
* For example, when adding a Repeater row or a Flexible content layout.
|
| 53 |
+
*/
|
| 54 |
+
acf.addAction( "append", this.refreshAnalysisAndReplaceVars.bind( this ) );
|
| 55 |
+
|
| 56 |
+
/*
|
| 57 |
+
* ACF `remove` global action: Triggered when HTML is removed from the page.
|
| 58 |
+
* For example, when removing a Repeater row or a Flexible content layout.
|
| 59 |
+
*/
|
| 60 |
+
acf.addAction( "remove", this.refreshAnalysisAndReplaceVars.bind( this ) );
|
| 61 |
+
|
| 62 |
+
/*
|
| 63 |
+
* ACF `sortstop` global action: Triggered when a field is reordered.
|
| 64 |
+
* For example, when reordering Repeater rows or Flexible content layouts.
|
| 65 |
+
*/
|
| 66 |
+
acf.addAction( "sortstop", this.refreshAnalysisAndReplaceVars.bind( this ) );
|
| 67 |
};
|
| 68 |
|
| 69 |
+
App.prototype.refreshAnalysisAndReplaceVars = function() {
|
| 70 |
+
this.maybeRefresh();
|
| 71 |
+
replaceVars.updateReplaceVars.bind( this, collect );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 72 |
};
|
| 73 |
|
| 74 |
App.prototype.bindListeners = function() {
|
| 75 |
if ( helper.acf_version >= 5 ) {
|
| 76 |
jQuery( this.acf5Listener.bind( this ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 77 |
}
|
| 78 |
};
|
| 79 |
|
| 84 |
|
| 85 |
analysisTimeout = window.setTimeout( function() {
|
| 86 |
if ( config.debug ) {
|
| 87 |
+
/* eslint-disable no-console */
|
| 88 |
console.log( "Recalculate..." + new Date() + "(Internal)" );
|
| 89 |
+
/* eslint-enable no-console */
|
| 90 |
}
|
| 91 |
|
| 92 |
YoastSEO.app.pluginReloaded( config.pluginName );
|
js/src/collect/collect-v4.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
| 1 |
-
/* global jQuery */
|
| 2 |
-
|
| 3 |
-
var config = require( "./../config/config.js" );
|
| 4 |
-
var fieldSelectors = config.fieldSelectors;
|
| 5 |
-
|
| 6 |
-
var field_data = [];
|
| 7 |
-
|
| 8 |
-
var fields = jQuery( "#post-body, #edittag" ).find( fieldSelectors.join( "," ) );
|
| 9 |
-
|
| 10 |
-
fields.each( function() {
|
| 11 |
-
var $el = jQuery( this ).parents( ".field" ).last();
|
| 12 |
-
|
| 13 |
-
field_data.push( {
|
| 14 |
-
$el: $el,
|
| 15 |
-
key: $el.data( "field_key" ),
|
| 16 |
-
name: $el.data( "field_name" ),
|
| 17 |
-
type: $el.data( "field_type" ),
|
| 18 |
-
post_meta_key: $el.data( "field_name" ),
|
| 19 |
-
} );
|
| 20 |
-
} );
|
| 21 |
-
|
| 22 |
-
module.exports = field_data;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
js/src/collect/collect.js
CHANGED
|
@@ -57,7 +57,6 @@ Collect.prototype.getData = function() {
|
|
| 57 |
if ( helper.acf_version >= 5 ) {
|
| 58 |
return require( "./collect-v5.js" )();
|
| 59 |
}
|
| 60 |
-
return require( "./collect-v4.js" );
|
| 61 |
};
|
| 62 |
|
| 63 |
Collect.prototype.filterBlacklistType = function( field_data ) {
|
| 57 |
if ( helper.acf_version >= 5 ) {
|
| 58 |
return require( "./collect-v5.js" )();
|
| 59 |
}
|
|
|
|
| 60 |
};
|
| 61 |
|
| 62 |
Collect.prototype.filterBlacklistType = function( field_data ) {
|
js/yoast-acf-analysis.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
|
| 2 |
-
/* global YoastSEO, acf,
|
| 3 |
var config = require( "./config/config.js" );
|
| 4 |
var helper = require( "./helper.js" );
|
| 5 |
var collect = require( "./collect/collect.js" );
|
|
@@ -16,58 +16,65 @@ var App = function() {
|
|
| 16 |
};
|
| 17 |
|
| 18 |
/**
|
| 19 |
-
* ACF
|
| 20 |
-
*
|
| 21 |
-
* @param {Array} fieldSelectors List of field selectors.
|
| 22 |
-
* @param {string} wysiwygSelector Element selector for WYSIWYG fields.
|
| 23 |
-
* @param {Array} fieldSelectorsWithoutWysiwyg List of fields.
|
| 24 |
*
|
| 25 |
* @returns {void}
|
| 26 |
*/
|
| 27 |
-
App.prototype.
|
| 28 |
replaceVars.updateReplaceVars( collect );
|
| 29 |
|
| 30 |
-
var
|
| 31 |
-
var fields = jQuery( "#post-body, #edittag" ).find( fieldSelectors.join( "," ) );
|
| 32 |
-
|
| 33 |
-
fieldsWithoutWysiwyg.on( "change", this.maybeRefresh.bind( this ) );
|
| 34 |
-
// Do not ignore Wysiwyg fields for the purpose of Replace Vars.
|
| 35 |
-
fields.on( "change", replaceVars.updateReplaceVars.bind( this, collect ) );
|
| 36 |
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 41 |
} );
|
| 42 |
-
}
|
| 43 |
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
|
|
|
|
|
|
| 47 |
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
App.prototype.acf5Listener = function() {
|
| 54 |
-
replaceVars.updateReplaceVars( collect );
|
| 55 |
|
| 56 |
-
|
| 57 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 58 |
};
|
| 59 |
|
| 60 |
App.prototype.bindListeners = function() {
|
| 61 |
if ( helper.acf_version >= 5 ) {
|
| 62 |
jQuery( this.acf5Listener.bind( this ) );
|
| 63 |
-
} else {
|
| 64 |
-
var fieldSelectors = config.fieldSelectors.slice( 0 );
|
| 65 |
-
var wysiwygSelector = "textarea[id^=wysiwyg-acf]";
|
| 66 |
-
|
| 67 |
-
// Ignore Wysiwyg fields because they trigger a refresh in Yoast SEO itself
|
| 68 |
-
var fieldSelectorsWithoutWysiwyg = _.without( fieldSelectors, wysiwygSelector );
|
| 69 |
-
|
| 70 |
-
jQuery( document ).on( "acf/setup_fields", this.acf4Listener.bind( this, fieldSelectors, wysiwygSelector, fieldSelectorsWithoutWysiwyg ) );
|
| 71 |
}
|
| 72 |
};
|
| 73 |
|
|
@@ -78,7 +85,9 @@ App.prototype.maybeRefresh = function() {
|
|
| 78 |
|
| 79 |
analysisTimeout = window.setTimeout( function() {
|
| 80 |
if ( config.debug ) {
|
|
|
|
| 81 |
console.log( "Recalculate..." + new Date() + "(Internal)" );
|
|
|
|
| 82 |
}
|
| 83 |
|
| 84 |
YoastSEO.app.pluginReloaded( config.pluginName );
|
|
@@ -87,7 +96,7 @@ App.prototype.maybeRefresh = function() {
|
|
| 87 |
|
| 88 |
module.exports = App;
|
| 89 |
|
| 90 |
-
},{"./collect/collect.js":
|
| 91 |
/* global _ */
|
| 92 |
var cache = require( "./cache.js" );
|
| 93 |
|
|
@@ -190,30 +199,6 @@ Cache.prototype.clear = function( store ) {
|
|
| 190 |
module.exports = new Cache();
|
| 191 |
|
| 192 |
},{}],4:[function(require,module,exports){
|
| 193 |
-
/* global jQuery */
|
| 194 |
-
|
| 195 |
-
var config = require( "./../config/config.js" );
|
| 196 |
-
var fieldSelectors = config.fieldSelectors;
|
| 197 |
-
|
| 198 |
-
var field_data = [];
|
| 199 |
-
|
| 200 |
-
var fields = jQuery( "#post-body, #edittag" ).find( fieldSelectors.join( "," ) );
|
| 201 |
-
|
| 202 |
-
fields.each( function() {
|
| 203 |
-
var $el = jQuery( this ).parents( ".field" ).last();
|
| 204 |
-
|
| 205 |
-
field_data.push( {
|
| 206 |
-
$el: $el,
|
| 207 |
-
key: $el.data( "field_key" ),
|
| 208 |
-
name: $el.data( "field_name" ),
|
| 209 |
-
type: $el.data( "field_type" ),
|
| 210 |
-
post_meta_key: $el.data( "field_name" ),
|
| 211 |
-
} );
|
| 212 |
-
} );
|
| 213 |
-
|
| 214 |
-
module.exports = field_data;
|
| 215 |
-
|
| 216 |
-
},{"./../config/config.js":7}],5:[function(require,module,exports){
|
| 217 |
/* global _, acf, jQuery, wp */
|
| 218 |
module.exports = function() {
|
| 219 |
var outerFieldsName = [
|
|
@@ -302,7 +287,7 @@ module.exports = function() {
|
|
| 302 |
return fields;
|
| 303 |
};
|
| 304 |
|
| 305 |
-
},{}],
|
| 306 |
/* global _ */
|
| 307 |
|
| 308 |
var config = require( "./../config/config.js" );
|
|
@@ -362,7 +347,6 @@ Collect.prototype.getData = function() {
|
|
| 362 |
if ( helper.acf_version >= 5 ) {
|
| 363 |
return require( "./collect-v5.js" )();
|
| 364 |
}
|
| 365 |
-
return require( "./collect-v4.js" );
|
| 366 |
};
|
| 367 |
|
| 368 |
Collect.prototype.filterBlacklistType = function( field_data ) {
|
|
@@ -399,18 +383,18 @@ Collect.prototype.sort = function( field_data ) {
|
|
| 399 |
|
| 400 |
module.exports = new Collect();
|
| 401 |
|
| 402 |
-
},{"./../config/config.js":
|
| 403 |
/* globals YoastACFAnalysisConfig */
|
| 404 |
module.exports = YoastACFAnalysisConfig;
|
| 405 |
|
| 406 |
-
},{}],
|
| 407 |
var config = require( "./config/config.js" );
|
| 408 |
|
| 409 |
module.exports = {
|
| 410 |
acf_version: parseFloat( config.acfVersion, 10 ),
|
| 411 |
};
|
| 412 |
|
| 413 |
-
},{"./config/config.js":
|
| 414 |
/* global jQuery, YoastSEO, wp, YoastACFAnalysis: true */
|
| 415 |
/* exported YoastACFAnalysis */
|
| 416 |
|
|
@@ -422,7 +406,7 @@ wp.domReady( function() {
|
|
| 422 |
}
|
| 423 |
} );
|
| 424 |
|
| 425 |
-
},{"./app.js":1}],
|
| 426 |
/* global _, jQuery, YoastSEO, YoastReplaceVarPlugin */
|
| 427 |
|
| 428 |
var config = require( "./config/config.js" );
|
|
@@ -479,7 +463,7 @@ module.exports = {
|
|
| 479 |
updateReplaceVars: updateReplaceVars,
|
| 480 |
};
|
| 481 |
|
| 482 |
-
},{"./config/config.js":
|
| 483 |
var config = require( "./config/config.js" );
|
| 484 |
|
| 485 |
var scraperObjects = {
|
|
@@ -577,7 +561,7 @@ module.exports = {
|
|
| 577 |
getScraper: getScraper,
|
| 578 |
};
|
| 579 |
|
| 580 |
-
},{"./config/config.js":
|
| 581 |
/* global _ */
|
| 582 |
|
| 583 |
var Scraper = function() {};
|
|
@@ -598,7 +582,7 @@ Scraper.prototype.scrape = function( fields ) {
|
|
| 598 |
|
| 599 |
module.exports = Scraper;
|
| 600 |
|
| 601 |
-
},{}],
|
| 602 |
/* global _ */
|
| 603 |
|
| 604 |
var Scraper = function() {};
|
|
@@ -619,7 +603,7 @@ Scraper.prototype.scrape = function( fields ) {
|
|
| 619 |
|
| 620 |
module.exports = Scraper;
|
| 621 |
|
| 622 |
-
},{}],
|
| 623 |
/* global _, jQuery */
|
| 624 |
|
| 625 |
var attachmentCache = require( "./../cache/cache.attachments.js" );
|
|
@@ -661,7 +645,7 @@ Scraper.prototype.scrape = function( fields ) {
|
|
| 661 |
|
| 662 |
module.exports = Scraper;
|
| 663 |
|
| 664 |
-
},{"./../cache/cache.attachments.js":2}],
|
| 665 |
/* global _ */
|
| 666 |
|
| 667 |
var attachmentCache = require( "./../cache/cache.attachments.js" );
|
|
@@ -699,7 +683,7 @@ Scraper.prototype.scrape = function( fields ) {
|
|
| 699 |
|
| 700 |
module.exports = Scraper;
|
| 701 |
|
| 702 |
-
},{"./../cache/cache.attachments.js":2}],
|
| 703 |
/* global _ */
|
| 704 |
require( "./../scraper-store.js" );
|
| 705 |
|
|
@@ -734,7 +718,7 @@ Scraper.prototype.scrape = function( fields ) {
|
|
| 734 |
|
| 735 |
module.exports = Scraper;
|
| 736 |
|
| 737 |
-
},{"./../scraper-store.js":
|
| 738 |
/* global _, acf */
|
| 739 |
|
| 740 |
var Scraper = function() {};
|
|
@@ -790,7 +774,7 @@ Scraper.prototype.scrape = function( fields ) {
|
|
| 790 |
|
| 791 |
module.exports = Scraper;
|
| 792 |
|
| 793 |
-
},{}],
|
| 794 |
/* global _ */
|
| 795 |
|
| 796 |
var config = require( "./../config/config.js" );
|
|
@@ -845,7 +829,7 @@ Scraper.prototype.isHeadline = function( field ) {
|
|
| 845 |
|
| 846 |
module.exports = Scraper;
|
| 847 |
|
| 848 |
-
},{"./../config/config.js":
|
| 849 |
/* global _ */
|
| 850 |
|
| 851 |
var Scraper = function() {};
|
|
@@ -866,7 +850,7 @@ Scraper.prototype.scrape = function( fields ) {
|
|
| 866 |
|
| 867 |
module.exports = Scraper;
|
| 868 |
|
| 869 |
-
},{}],
|
| 870 |
/* global _ */
|
| 871 |
|
| 872 |
var Scraper = function() {};
|
|
@@ -889,7 +873,7 @@ Scraper.prototype.scrape = function( fields ) {
|
|
| 889 |
|
| 890 |
module.exports = Scraper;
|
| 891 |
|
| 892 |
-
},{}],
|
| 893 |
/* global tinyMCE, _ */
|
| 894 |
|
| 895 |
var Scraper = function() {};
|
|
@@ -948,4 +932,4 @@ Scraper.prototype.scrape = function( fields ) {
|
|
| 948 |
|
| 949 |
module.exports = Scraper;
|
| 950 |
|
| 951 |
-
},{}]},{},[
|
| 1 |
(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
|
| 2 |
+
/* global YoastSEO, acf, jQuery, */
|
| 3 |
var config = require( "./config/config.js" );
|
| 4 |
var helper = require( "./helper.js" );
|
| 5 |
var collect = require( "./collect/collect.js" );
|
| 16 |
};
|
| 17 |
|
| 18 |
/**
|
| 19 |
+
* ACF 5 Listener.
|
|
|
|
|
|
|
|
|
|
|
|
|
| 20 |
*
|
| 21 |
* @returns {void}
|
| 22 |
*/
|
| 23 |
+
App.prototype.acf5Listener = function() {
|
| 24 |
replaceVars.updateReplaceVars( collect );
|
| 25 |
|
| 26 |
+
var that = this;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 27 |
|
| 28 |
+
// Use ACF Models introduced in ACF version 5.7.
|
| 29 |
+
/* eslint-disable no-unused-vars */
|
| 30 |
+
var acfModelInstance = new acf.Model( {
|
| 31 |
+
wait: "ready",
|
| 32 |
+
events: {
|
| 33 |
+
input: "onInput",
|
| 34 |
+
},
|
| 35 |
+
onInput: this.refreshAnalysisAndReplaceVars.bind( this ),
|
| 36 |
+
} );
|
| 37 |
+
/* eslint-enable no-unused-vars */
|
| 38 |
+
|
| 39 |
+
// The ACF Wysiwyg field needs to be handled after TinyMCE is initialized.
|
| 40 |
+
jQuery( document ).on( "tinymce-editor-init", function( event, editor ) {
|
| 41 |
+
/*
|
| 42 |
+
* TinyMCE supports the native `input` event but doesn't always fire it
|
| 43 |
+
* when pasting: added a specific `paste` event. Also, added TinyMCE specific
|
| 44 |
+
* events to support the undo and redo actions.
|
| 45 |
+
*/
|
| 46 |
+
editor.on( "input paste undo redo", function() {
|
| 47 |
+
that.refreshAnalysisAndReplaceVars();
|
| 48 |
} );
|
| 49 |
+
} );
|
| 50 |
|
| 51 |
+
/*
|
| 52 |
+
* ACF `append` global action: Triggered when new HTML is added to the page.
|
| 53 |
+
* For example, when adding a Repeater row or a Flexible content layout.
|
| 54 |
+
*/
|
| 55 |
+
acf.addAction( "append", this.refreshAnalysisAndReplaceVars.bind( this ) );
|
| 56 |
|
| 57 |
+
/*
|
| 58 |
+
* ACF `remove` global action: Triggered when HTML is removed from the page.
|
| 59 |
+
* For example, when removing a Repeater row or a Flexible content layout.
|
| 60 |
+
*/
|
| 61 |
+
acf.addAction( "remove", this.refreshAnalysisAndReplaceVars.bind( this ) );
|
|
|
|
|
|
|
| 62 |
|
| 63 |
+
/*
|
| 64 |
+
* ACF `sortstop` global action: Triggered when a field is reordered.
|
| 65 |
+
* For example, when reordering Repeater rows or Flexible content layouts.
|
| 66 |
+
*/
|
| 67 |
+
acf.addAction( "sortstop", this.refreshAnalysisAndReplaceVars.bind( this ) );
|
| 68 |
+
};
|
| 69 |
+
|
| 70 |
+
App.prototype.refreshAnalysisAndReplaceVars = function() {
|
| 71 |
+
this.maybeRefresh();
|
| 72 |
+
replaceVars.updateReplaceVars.bind( this, collect );
|
| 73 |
};
|
| 74 |
|
| 75 |
App.prototype.bindListeners = function() {
|
| 76 |
if ( helper.acf_version >= 5 ) {
|
| 77 |
jQuery( this.acf5Listener.bind( this ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 78 |
}
|
| 79 |
};
|
| 80 |
|
| 85 |
|
| 86 |
analysisTimeout = window.setTimeout( function() {
|
| 87 |
if ( config.debug ) {
|
| 88 |
+
/* eslint-disable no-console */
|
| 89 |
console.log( "Recalculate..." + new Date() + "(Internal)" );
|
| 90 |
+
/* eslint-enable no-console */
|
| 91 |
}
|
| 92 |
|
| 93 |
YoastSEO.app.pluginReloaded( config.pluginName );
|
| 96 |
|
| 97 |
module.exports = App;
|
| 98 |
|
| 99 |
+
},{"./collect/collect.js":5,"./config/config.js":6,"./helper.js":7,"./replacevars.js":9}],2:[function(require,module,exports){
|
| 100 |
/* global _ */
|
| 101 |
var cache = require( "./cache.js" );
|
| 102 |
|
| 199 |
module.exports = new Cache();
|
| 200 |
|
| 201 |
},{}],4:[function(require,module,exports){
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 202 |
/* global _, acf, jQuery, wp */
|
| 203 |
module.exports = function() {
|
| 204 |
var outerFieldsName = [
|
| 287 |
return fields;
|
| 288 |
};
|
| 289 |
|
| 290 |
+
},{}],5:[function(require,module,exports){
|
| 291 |
/* global _ */
|
| 292 |
|
| 293 |
var config = require( "./../config/config.js" );
|
| 347 |
if ( helper.acf_version >= 5 ) {
|
| 348 |
return require( "./collect-v5.js" )();
|
| 349 |
}
|
|
|
|
| 350 |
};
|
| 351 |
|
| 352 |
Collect.prototype.filterBlacklistType = function( field_data ) {
|
| 383 |
|
| 384 |
module.exports = new Collect();
|
| 385 |
|
| 386 |
+
},{"./../config/config.js":6,"./../helper.js":7,"./../scraper-store.js":10,"./collect-v5.js":4}],6:[function(require,module,exports){
|
| 387 |
/* globals YoastACFAnalysisConfig */
|
| 388 |
module.exports = YoastACFAnalysisConfig;
|
| 389 |
|
| 390 |
+
},{}],7:[function(require,module,exports){
|
| 391 |
var config = require( "./config/config.js" );
|
| 392 |
|
| 393 |
module.exports = {
|
| 394 |
acf_version: parseFloat( config.acfVersion, 10 ),
|
| 395 |
};
|
| 396 |
|
| 397 |
+
},{"./config/config.js":6}],8:[function(require,module,exports){
|
| 398 |
/* global jQuery, YoastSEO, wp, YoastACFAnalysis: true */
|
| 399 |
/* exported YoastACFAnalysis */
|
| 400 |
|
| 406 |
}
|
| 407 |
} );
|
| 408 |
|
| 409 |
+
},{"./app.js":1}],9:[function(require,module,exports){
|
| 410 |
/* global _, jQuery, YoastSEO, YoastReplaceVarPlugin */
|
| 411 |
|
| 412 |
var config = require( "./config/config.js" );
|
| 463 |
updateReplaceVars: updateReplaceVars,
|
| 464 |
};
|
| 465 |
|
| 466 |
+
},{"./config/config.js":6}],10:[function(require,module,exports){
|
| 467 |
var config = require( "./config/config.js" );
|
| 468 |
|
| 469 |
var scraperObjects = {
|
| 561 |
getScraper: getScraper,
|
| 562 |
};
|
| 563 |
|
| 564 |
+
},{"./config/config.js":6,"./scraper/scraper.block_preview.js":11,"./scraper/scraper.email.js":12,"./scraper/scraper.gallery.js":13,"./scraper/scraper.image.js":14,"./scraper/scraper.link.js":15,"./scraper/scraper.taxonomy.js":16,"./scraper/scraper.text.js":17,"./scraper/scraper.textarea.js":18,"./scraper/scraper.url.js":19,"./scraper/scraper.wysiwyg.js":20}],11:[function(require,module,exports){
|
| 565 |
/* global _ */
|
| 566 |
|
| 567 |
var Scraper = function() {};
|
| 582 |
|
| 583 |
module.exports = Scraper;
|
| 584 |
|
| 585 |
+
},{}],12:[function(require,module,exports){
|
| 586 |
/* global _ */
|
| 587 |
|
| 588 |
var Scraper = function() {};
|
| 603 |
|
| 604 |
module.exports = Scraper;
|
| 605 |
|
| 606 |
+
},{}],13:[function(require,module,exports){
|
| 607 |
/* global _, jQuery */
|
| 608 |
|
| 609 |
var attachmentCache = require( "./../cache/cache.attachments.js" );
|
| 645 |
|
| 646 |
module.exports = Scraper;
|
| 647 |
|
| 648 |
+
},{"./../cache/cache.attachments.js":2}],14:[function(require,module,exports){
|
| 649 |
/* global _ */
|
| 650 |
|
| 651 |
var attachmentCache = require( "./../cache/cache.attachments.js" );
|
| 683 |
|
| 684 |
module.exports = Scraper;
|
| 685 |
|
| 686 |
+
},{"./../cache/cache.attachments.js":2}],15:[function(require,module,exports){
|
| 687 |
/* global _ */
|
| 688 |
require( "./../scraper-store.js" );
|
| 689 |
|
| 718 |
|
| 719 |
module.exports = Scraper;
|
| 720 |
|
| 721 |
+
},{"./../scraper-store.js":10}],16:[function(require,module,exports){
|
| 722 |
/* global _, acf */
|
| 723 |
|
| 724 |
var Scraper = function() {};
|
| 774 |
|
| 775 |
module.exports = Scraper;
|
| 776 |
|
| 777 |
+
},{}],17:[function(require,module,exports){
|
| 778 |
/* global _ */
|
| 779 |
|
| 780 |
var config = require( "./../config/config.js" );
|
| 829 |
|
| 830 |
module.exports = Scraper;
|
| 831 |
|
| 832 |
+
},{"./../config/config.js":6}],18:[function(require,module,exports){
|
| 833 |
/* global _ */
|
| 834 |
|
| 835 |
var Scraper = function() {};
|
| 850 |
|
| 851 |
module.exports = Scraper;
|
| 852 |
|
| 853 |
+
},{}],19:[function(require,module,exports){
|
| 854 |
/* global _ */
|
| 855 |
|
| 856 |
var Scraper = function() {};
|
| 873 |
|
| 874 |
module.exports = Scraper;
|
| 875 |
|
| 876 |
+
},{}],20:[function(require,module,exports){
|
| 877 |
/* global tinyMCE, _ */
|
| 878 |
|
| 879 |
var Scraper = function() {};
|
| 932 |
|
| 933 |
module.exports = Scraper;
|
| 934 |
|
| 935 |
+
},{}]},{},[8]);
|
readme.txt
CHANGED
|
@@ -5,7 +5,7 @@ Requires at least: 5.2
|
|
| 5 |
Tested up to: 5.5
|
| 6 |
License: GPLv3
|
| 7 |
License URI: http://www.gnu.org/licenses/gpl.html
|
| 8 |
-
Stable tag:
|
| 9 |
Requires PHP: 5.6.20
|
| 10 |
|
| 11 |
WordPress plugin that adds the content of all ACF fields to the Yoast SEO score analysis.
|
|
@@ -55,6 +55,19 @@ Previously called Yoast ACF Analysis.
|
|
| 55 |
|
| 56 |
== Changelog ==
|
| 57 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 58 |
= 2.7.0 =
|
| 59 |
|
| 60 |
Released September 1st, 2020
|
| 5 |
Tested up to: 5.5
|
| 6 |
License: GPLv3
|
| 7 |
License URI: http://www.gnu.org/licenses/gpl.html
|
| 8 |
+
Stable tag: 3.0
|
| 9 |
Requires PHP: 5.6.20
|
| 10 |
|
| 11 |
WordPress plugin that adds the content of all ACF fields to the Yoast SEO score analysis.
|
| 55 |
|
| 56 |
== Changelog ==
|
| 57 |
|
| 58 |
+
= 3.0.0 =
|
| 59 |
+
|
| 60 |
+
Released September 29th, 2020
|
| 61 |
+
|
| 62 |
+
Bugfixes:
|
| 63 |
+
|
| 64 |
+
* Fixes a bug where the content of ACF fields wouldn't be included in the SEO and readability analysis when using the Classic Editor plugin.
|
| 65 |
+
* Fixes a bug where changes to the content of ACF fields wouldn't trigger a live refresh of the SEO and readability analysis.
|
| 66 |
+
|
| 67 |
+
Other:
|
| 68 |
+
|
| 69 |
+
* No longer supports ACF versions below 5.7.
|
| 70 |
+
|
| 71 |
= 2.7.0 =
|
| 72 |
|
| 73 |
Released September 1st, 2020
|
tests/js/system/tests/acf4/relational.js
DELETED
|
@@ -1,58 +0,0 @@
|
|
| 1 |
-
var assert = require('assert');
|
| 2 |
-
var logContains = require('../../helpers/logContains');
|
| 3 |
-
|
| 4 |
-
module.exports = {
|
| 5 |
-
tags: ['acf4', 'relational'],
|
| 6 |
-
|
| 7 |
-
before: function (browser) {
|
| 8 |
-
var page = browser.page.WordPressHelper();
|
| 9 |
-
page.newPost();
|
| 10 |
-
},
|
| 11 |
-
|
| 12 |
-
beforeEach: function (browser) {
|
| 13 |
-
},
|
| 14 |
-
|
| 15 |
-
'Taxonomy Checkbox Field' : function (browser) {
|
| 16 |
-
|
| 17 |
-
var selector = '.acf-taxonomy-field .acf-checkbox-list li:first-child ';
|
| 18 |
-
|
| 19 |
-
browser.waitForElementVisible( selector, 1000 );
|
| 20 |
-
|
| 21 |
-
browser.pause( 3000 );
|
| 22 |
-
|
| 23 |
-
browser.click( selector + 'input' );
|
| 24 |
-
|
| 25 |
-
browser.getText( selector + 'label', function(result) {
|
| 26 |
-
|
| 27 |
-
browser.pause( 3000 );
|
| 28 |
-
|
| 29 |
-
logContains( browser, 'li>' + result.value, this.assert.ok );
|
| 30 |
-
|
| 31 |
-
});
|
| 32 |
-
|
| 33 |
-
},
|
| 34 |
-
|
| 35 |
-
'Taxonomy Multi Select Field' : function (browser) {
|
| 36 |
-
|
| 37 |
-
var selector = '.acf-taxonomy-field select ';
|
| 38 |
-
|
| 39 |
-
browser.waitForElementVisible( selector, 1000 );
|
| 40 |
-
|
| 41 |
-
browser.pause( 3000 );
|
| 42 |
-
|
| 43 |
-
browser.click( selector + 'option:first-child' );
|
| 44 |
-
|
| 45 |
-
browser.getText( selector + 'option:checked', function(result) {
|
| 46 |
-
|
| 47 |
-
this.pause( 3000 );
|
| 48 |
-
|
| 49 |
-
logContains( browser, 'li>' + result.value, this.assert.ok );
|
| 50 |
-
|
| 51 |
-
});
|
| 52 |
-
|
| 53 |
-
},
|
| 54 |
-
|
| 55 |
-
after : function(browser) {
|
| 56 |
-
browser.end();
|
| 57 |
-
}
|
| 58 |
-
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tests/php/unit/assets-test.php
CHANGED
|
@@ -67,6 +67,6 @@ class Assets_Test extends TestCase {
|
|
| 67 |
$testee = new Yoast_ACF_Analysis_Assets();
|
| 68 |
$testee->init();
|
| 69 |
|
| 70 |
-
$this->assertTrue( \
|
| 71 |
}
|
| 72 |
}
|
| 67 |
$testee = new Yoast_ACF_Analysis_Assets();
|
| 68 |
$testee->init();
|
| 69 |
|
| 70 |
+
$this->assertTrue( \has_action( 'admin_enqueue_scripts', [ $testee, 'enqueue_scripts' ] ) );
|
| 71 |
}
|
| 72 |
}
|
vendor/autoload.php
CHANGED
|
@@ -4,4 +4,4 @@
|
|
| 4 |
|
| 5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
| 6 |
|
| 7 |
-
return
|
| 4 |
|
| 5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
| 6 |
|
| 7 |
+
return ComposerAutoloaderInitb16e92a98626f65823b0d33fe06ec4cf::getLoader();
|
vendor/composer/ClassLoader.php
CHANGED
|
@@ -60,7 +60,7 @@ class ClassLoader
|
|
| 60 |
public function getPrefixes()
|
| 61 |
{
|
| 62 |
if (!empty($this->prefixesPsr0)) {
|
| 63 |
-
return call_user_func_array('array_merge', $this->prefixesPsr0);
|
| 64 |
}
|
| 65 |
|
| 66 |
return array();
|
| 60 |
public function getPrefixes()
|
| 61 |
{
|
| 62 |
if (!empty($this->prefixesPsr0)) {
|
| 63 |
+
return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
|
| 64 |
}
|
| 65 |
|
| 66 |
return array();
|
vendor/composer/autoload_real.php
CHANGED
|
@@ -2,7 +2,7 @@
|
|
| 2 |
|
| 3 |
// autoload_real.php @generated by Composer
|
| 4 |
|
| 5 |
-
class
|
| 6 |
{
|
| 7 |
private static $loader;
|
| 8 |
|
|
@@ -22,15 +22,15 @@ class ComposerAutoloaderInit39bd3b2754fd891472148a5e48601316
|
|
| 22 |
return self::$loader;
|
| 23 |
}
|
| 24 |
|
| 25 |
-
spl_autoload_register(array('
|
| 26 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
| 27 |
-
spl_autoload_unregister(array('
|
| 28 |
|
| 29 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
| 30 |
if ($useStaticLoader) {
|
| 31 |
require_once __DIR__ . '/autoload_static.php';
|
| 32 |
|
| 33 |
-
call_user_func(\Composer\Autoload\
|
| 34 |
} else {
|
| 35 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
| 36 |
foreach ($map as $namespace => $path) {
|
| 2 |
|
| 3 |
// autoload_real.php @generated by Composer
|
| 4 |
|
| 5 |
+
class ComposerAutoloaderInitb16e92a98626f65823b0d33fe06ec4cf
|
| 6 |
{
|
| 7 |
private static $loader;
|
| 8 |
|
| 22 |
return self::$loader;
|
| 23 |
}
|
| 24 |
|
| 25 |
+
spl_autoload_register(array('ComposerAutoloaderInitb16e92a98626f65823b0d33fe06ec4cf', 'loadClassLoader'), true, true);
|
| 26 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
| 27 |
+
spl_autoload_unregister(array('ComposerAutoloaderInitb16e92a98626f65823b0d33fe06ec4cf', 'loadClassLoader'));
|
| 28 |
|
| 29 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
| 30 |
if ($useStaticLoader) {
|
| 31 |
require_once __DIR__ . '/autoload_static.php';
|
| 32 |
|
| 33 |
+
call_user_func(\Composer\Autoload\ComposerStaticInitb16e92a98626f65823b0d33fe06ec4cf::getInitializer($loader));
|
| 34 |
} else {
|
| 35 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
| 36 |
foreach ($map as $namespace => $path) {
|
vendor/composer/autoload_static.php
CHANGED
|
@@ -4,7 +4,7 @@
|
|
| 4 |
|
| 5 |
namespace Composer\Autoload;
|
| 6 |
|
| 7 |
-
class
|
| 8 |
{
|
| 9 |
public static $prefixLengthsPsr4 = array (
|
| 10 |
'C' =>
|
|
@@ -126,9 +126,9 @@ class ComposerStaticInit39bd3b2754fd891472148a5e48601316
|
|
| 126 |
public static function getInitializer(ClassLoader $loader)
|
| 127 |
{
|
| 128 |
return \Closure::bind(function () use ($loader) {
|
| 129 |
-
$loader->prefixLengthsPsr4 =
|
| 130 |
-
$loader->prefixDirsPsr4 =
|
| 131 |
-
$loader->classMap =
|
| 132 |
|
| 133 |
}, null, ClassLoader::class);
|
| 134 |
}
|
| 4 |
|
| 5 |
namespace Composer\Autoload;
|
| 6 |
|
| 7 |
+
class ComposerStaticInitb16e92a98626f65823b0d33fe06ec4cf
|
| 8 |
{
|
| 9 |
public static $prefixLengthsPsr4 = array (
|
| 10 |
'C' =>
|
| 126 |
public static function getInitializer(ClassLoader $loader)
|
| 127 |
{
|
| 128 |
return \Closure::bind(function () use ($loader) {
|
| 129 |
+
$loader->prefixLengthsPsr4 = ComposerStaticInitb16e92a98626f65823b0d33fe06ec4cf::$prefixLengthsPsr4;
|
| 130 |
+
$loader->prefixDirsPsr4 = ComposerStaticInitb16e92a98626f65823b0d33fe06ec4cf::$prefixDirsPsr4;
|
| 131 |
+
$loader->classMap = ComposerStaticInitb16e92a98626f65823b0d33fe06ec4cf::$classMap;
|
| 132 |
|
| 133 |
}, null, ClassLoader::class);
|
| 134 |
}
|
yoast-acf-analysis.php
CHANGED
|
@@ -7,8 +7,8 @@
|
|
| 7 |
* @wordpress-plugin
|
| 8 |
* Plugin Name: ACF Content Analysis for Yoast SEO
|
| 9 |
* Plugin URI: https://wordpress.org/plugins/acf-content-analysis-for-yoast-seo/
|
| 10 |
-
* Description: Ensure that Yoast SEO analyzes all Advanced Custom Fields
|
| 11 |
-
* Version:
|
| 12 |
* Author: Thomas Kräftner, ViktorFroberg, marol87, pekz0r, angrycreative, Team Yoast
|
| 13 |
* Author URI: http://angrycreative.se
|
| 14 |
* License: GPL v3
|
| 7 |
* @wordpress-plugin
|
| 8 |
* Plugin Name: ACF Content Analysis for Yoast SEO
|
| 9 |
* Plugin URI: https://wordpress.org/plugins/acf-content-analysis-for-yoast-seo/
|
| 10 |
+
* Description: Ensure that Yoast SEO analyzes all Advanced Custom Fields 5.7+ content including Flexible Content and Repeaters.
|
| 11 |
+
* Version: 3.0
|
| 12 |
* Author: Thomas Kräftner, ViktorFroberg, marol87, pekz0r, angrycreative, Team Yoast
|
| 13 |
* Author URI: http://angrycreative.se
|
| 14 |
* License: GPL v3
|
