Мой PHP-код ниже работает отлично на месте, но как только я помещаю это на живой сервер, он берет весь сайт. После того, как журналы ошибок расследование, он имеет проблемы с [], используемый в этой строке кода:Ошибка PHP functions.php 500 error []
wp_enqueue_script('jquery', '//fake-jquery-script.js', [], null);
Вот PHP в полной мере, как я получаю вокруг этого вопроса?
/**
* @desc De-register WP jquery
**/
add_action('wp_print_scripts', 'de_script', 100);
function de_script() {
wp_dequeue_script('jquery');
wp_deregister_script('jquery');
}
/**
* Inject jQuery early if there's a Gravity Form
*/
function gc_gform_inject_jquery($content = '') {
global $gc_jquery_loaded_before_gform;
if (!isset($gc_jquery_loaded_before_gform)) {
// set global variable so jQuery isn't loaded twice
$gc_jquery_loaded_before_gform = true;
// inject jQuery code
echo '<!-- loading jquery before Gravity Form inline scripts -->';
gc_load_jquery_cdn_and_fallback();
}
return $content;
}
add_filter('gform_cdata_open', 'gc_gform_inject_jquery');
/**
* Load jQuery in the footer or before the first Gravity Form.
* Include a local fallback if the Google CDN fails (e.g. User is in China)
*/
function gc_load_jquery_cdn_and_fallback() {
// Google CDN
echo '<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery'. (SCRIPT_DEBUG ? '.js' : '.min.js') .'"></script>';
// Local fallback
echo '<script>if (!window.jQuery) { document.write(\'<script src="'. get_stylesheet_directory_uri() .'/js/vendor/jquery-1.11.2'. (SCRIPT_DEBUG ? '.js' : '.min.js') .'"><\/script>\'); }</script>';
}
/**
* Loading jQuery and jQuery-dependent scripts
* If jQuery was not already loaded before a Gravity Form, load it
* Also enqueue a fake version of it (for dependencies) and then
* remove this fake script
*/
function gc_load_javascript_in_footer() {
global $gc_jquery_loaded_before_gform;
// If jQuery has not been loaded already, load it
if ($gc_jquery_loaded_before_gform !== true) {
gc_load_jquery_cdn_and_fallback();
}
// Enqueue a fake script called "jquery" to for dependent enqueued scripts
// HERE'S THE PROBLEM
wp_enqueue_script('jquery', '//fake-jquery-script.js', [], null);
// Remove the fake script
function gc_remove_fake_jquery_script($tag) {
$tag = (strpos($tag, 'fake-jquery-script') !== false) ? '' : $tag;
return $tag;
}
add_filter('script_loader_tag', 'gc_remove_fake_jquery_script');
}
add_action('wp_footer', 'gc_load_javascript_in_footer');
старая версия PHP, что вы работаете не поддерживает короткий синтаксис массива; вместо этого используйте 'array()' или обновите версию PHP, на которой вы работаете –
'[]' могут сами по себе никогда не отправляться функции. Если это строка, оберните ее в кавычки, если это массив, оберните ее в переменную. но поскольку они, они никогда не будут проанализированы вашим текущим PHP. EDIT: может быть, PHP 7 может? – Martin
@Martin - PHP> = 5.4.0, поэтому он был частью PHP с 1 марта 2012 года –