Hi
I was following exact steps fro configuring Speed Booster and when i opened the file, i noticed all references in file are written for Newspaper.
And does nothing 🙂 Still js and css showing up in Page speed insights.
What is latest version of Speed Booster for Newsmag?
Thank you
Here is my speed booster file
<?php
/*
Plugin Name: tagDiv Speed Booster
Plugin URI: http://tagdiv.com
Description: Speed booster for Newspaper 6 and Newsmag 1.x themes - It moves the styles and all the scripts of the theme to the bottom when needed. It activates internal theme optimizations for better speed and it adds async js .
Author: tagDiv
Version: 4.1
Author URI: http://tagdiv.com
*/
define('TD_SPEED_BOOSTER' , 'v4.1');
class td_speed_booster {
private $style_footer_queue = array(); // here we keep all the stylesheets IDs that we want to move to the footer
private $is_ie = false; // if the browser is detected as IE, treat it differently
// here we keep the theme information
private $td_theme_name = '';
private $td_theme_version = '';
private $td_deploy_mode = '';
private $allowed_plugins = array(
'bbpress/bbpress.php',
'contact-form-7/wp-contact-form-7.php',
'jetpack/jetpack.php',
'js_composer/js_composer.php',
'td-speed-booster/td-speed-booster.php',
'font-awesome-4-menus/n9m-font-awesome-4.php',
'wordpress-seo/wp-seo.php',
'wp-user-avatar/wp-user-avatar.php',
'td-social-counter/td-social-counter.php',
'wp-super-cache/wp-cache.php'
);
// this class is instantiated at the bottom of this page
function __construct() {
add_action('td_wp_booster_loaded', array($this, 'start_booster'));
}
/**
* everything starts from here
*/
function start_booster() {
// read the theme version and name if defined
if (defined('TD_THEME_VERSION') and defined('TD_THEME_NAME') and defined('TD_DEPLOY_MODE')) {
$this->td_theme_version = TD_THEME_VERSION;
$this->td_theme_name = TD_THEME_NAME;
$this->td_deploy_mode = TD_DEPLOY_MODE;
} else {
return;
}
// detect IE 8 9 10 11
if (
!empty($_SERVER['HTTP_USER_AGENT'])
and (preg_match('~MSIE|Internet Explorer~i', $_SERVER['HTTP_USER_AGENT']) or (strpos($_SERVER['HTTP_USER_AGENT'], 'Trident/7.0; rv:11.0') !== false))
) {
$this->is_ie = true;
}
// add hooks
add_action('wp_enqueue_scripts', array($this, 'css_mover'), 1002); // 1002 priority - because visual composer has 1000 and we use 1001 in the wp010 theme
add_action('wp_enqueue_scripts', array($this, 'js_mover'), 1002); // 1002 priority - because visual composer has 1000 and we use 1001 in the wp010 theme
add_action('wp_footer', array($this, 'render_footer_styles'), 15);
// hide the body only on IE and Newspaper 6+
if (
$this->is_ie === false
and $this->td_theme_name == 'Newsmag'
) {
//add_action('wp_head', array($this, 'hide_body_inline_css'), 15);
}
/**
* jetpack is 'special' - it has to be moved like this. It has now only one CSS
* the two hooks are needed!
* @since 27.05.2015
*/
add_action('wp_print_styles', array($this, 'jetpack_mover'), 10);
add_action('wp_print_footer_scripts', array($this, 'jetpack_mover'), 10);
}
/**
* jetpack is 'special' - it has to be moved like this. It has now only one CSS
* @since 27.05.2015
*/
function jetpack_mover() {
$this->move_style_to_footer_queue('jetpack_css');
}
/**
* here we move the css
*/
function css_mover() {
if ($this->td_theme_name == 'Newsmag') {
// wp 011 - Newspaper 6
//$this->move_style_to_footer_queue('bbp-default-bbpress'); //bpress old
//$this->move_style_to_footer_queue('bbp-default'); //bpress
$this->move_style_to_footer_queue('google_font_open_sans');
$this->move_style_to_footer_queue('google_font_roboto');
$this->move_style_to_footer_queue('contact-form-7');
if ($this->is_ie === false) {
// move style.css theme style
//$this->move_style_to_footer_queue('js_composer_front');
//$this->move_style_to_footer_queue('td-theme'); //this is the main style of the theme. It's only moved on Newspaper 6!
}
}
//@todo test on newsmag
$this->move_style_to_footer_queue('woocommerce_frontend_styles'); //old woocommerce?
$this->move_style_to_footer_queue('woocommerce-layout');
$this->move_style_to_footer_queue('woocommerce-smallscreen');
$this->move_style_to_footer_queue('woocommerce-general');
$this->move_style_to_footer_queue('bp-legacy-css');
$this->move_style_to_footer_queue('td-theme');
$this->move_style_to_footer_queue('font-awesome-four');
//move revolution slider css
$this->move_style_to_footer_queue('rs-plugin-settings');
$this->move_style_to_footer_queue('genericons'); //still rev slider
}
/**
* move the js
*/
function js_mover() {
global $wp_scripts;
//detect revmin - revolution slider and do not move jquery, the plugin outputs raw js in the page!
if( !is_admin() and !isset($wp_scripts->registered['revmin'])){
if (is_ssl()) {
$td_protocol = 'https';
} else {
$td_protocol = 'http';
}
wp_deregister_script('jquery');
wp_register_script('jquery', ($td_protocol . '://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'), true, '1.11.1', true);
wp_enqueue_script('jquery');
}
/**
* move javascript to footer
*/
$this->move_js_to_footer('themepunchtools');
$this->move_js_to_footer('td-site-min');
$this->move_js_to_footer('revmin');
$this->move_js_to_footer('archivesCW');
$this->move_js_to_footer('js_composer_front');
$this->move_style_to_footer_queue('archives-cal-classiclight');
//print_r($wp_scripts);
// replace comment-reply.min.js with inline version
}
/**
* here we render the footer styles
* the styles are already deregistered when you call @see move_style_to_footer_queue ($style_id)
*/
function render_footer_styles() {
//get the theme version for style
$current_theme_version = $this->td_theme_version;
//on demo mode, auto generate version hourly + day - so we get a fresh css hourly
if ($this->td_deploy_mode == 'demo') {
$current_theme_version = date('jG');
}
if (isset($this->style_footer_queue['td-theme'])) {
// whatever the order, make damn sure that our td-theme style is LAST - we remove it from the queue and add it again at the end
$td_theme_value = $this->style_footer_queue['td-theme'];
unset($this->style_footer_queue['td-theme']);
$this->style_footer_queue['td-theme'] = $td_theme_value;
}
// output the new styles
foreach ($this->style_footer_queue as $style_id => $style_src) {
echo "<link rel='stylesheet' id='" . $style_id . "-css' href='" . $style_src . "?ver=" . $current_theme_version . "' type='text/css' media='all' />\n";
}
}
/**
* prevent flickering of the image until the style is loaded
*/
function hide_body_inline_css() {
echo '<style>body {visibility:hidden;}</style>';
}
/**
* the id of the style can be found in the source of the page, for example:
* <link rel='stylesheet' id='td-theme-css' => the id is 'td-theme' (note that the '-css' part is missing)
* using this method you can move other styles if needed
* Moves a style to the bottom of the page
* @param $style_id string - the id of the style
*/
function move_style_to_footer_queue($style_id) {
global $wp_styles;
if (!empty($wp_styles->registered[$style_id]) and !empty($wp_styles->registered[$style_id]->src)) {
$this->style_footer_queue[$style_id] = $wp_styles->registered[$style_id]->src;
wp_deregister_style($style_id);
}
}
/**
* @param $js_id string - the js file id (this is a bit more complex to get) @todo -> add a tutorial about how to get the theme js
*/
function move_js_to_footer($js_id) {
global $wp_scripts;
if (isset($wp_scripts->registered[$js_id])) {
wp_enqueue_script($js_id, ($wp_scripts->registered[$js_id]->src), '', $wp_scripts->registered[$js_id]->ver, true);
}
}
}
new td_speed_booster();
and here is registered scripts
registered scripts
archivesCW | http://www.domain.com/second/wp-content/plugins/archives-calendar-widget/jquery.archivesCW.min.js
aspexi-facebook-like-box | http://www.domain.com/second/wp-content/plugins/aspexi-facebook-like-box/js/aflb.js
jquery | http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js
td-site-min | http://www.domain.com/second/wp-content/themes/Newsmag/js/tagdiv_theme.min.js
comment-reply | /wp-includes/js/comment-reply.min.js
registered styles
archives-cal-classiclight | http://www.domain.com/second/wp-content/plugins/archives-calendar-widget/themes/classiclight.css
awesome-weather | http://www.domain.com/second/wp-content/plugins/awesome-weather/awesome-weather.css
opensans-googlefont | https://fonts.googleapis.com/css?family=Open+Sans:400,300
google_font_roboto_cond | http://fonts.googleapis.com/css?family=Roboto+Condensed:300italic,400italic,700italic,400,300,700
google-fonts-style | http://fonts.googleapis.com/css?family=Open+Sans:400,700
js_composer_front | http://www.domain.com/second/wp-content/plugins/js_composer/assets/css/js_composer.css
td-theme | http://www.domain.com/second/wp-content/themes/Newsmag/style.css
td-theme-child | http://www.domain.com/second/wp-content/themes/Newsmag-child/style.css
latest version from functions.php .. why are some lines without url and yet reported in PageSpeed Insights?
registered scripts
archivesCW | http://www.cele.si/second/wp-content/plugins/archives-calendar-widget/jquery.archivesCW.min.js
aspexi-facebook-like-box | http://www.cele.si/second/wp-content/plugins/aspexi-facebook-like-box/js/aflb.js
jquery | http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js
td-site-min | http://www.cele.si/second/wp-content/themes/Newsmag/js/tagdiv_theme.min.js
comment-reply | /wp-includes/js/comment-reply.min.js
registered styles
ual-style-css |
archives-cal-classiclight |
awesome-weather |
opensans-googlefont |
google_font_roboto_cond |
google-fonts-style |
td-theme |
td-theme-child |
-
This reply was modified 11 years by
gregy1403.
Hi,
The speed booster plugin it’s the same for both themes just functioning differently depending on the theme is used on.
Checking your site I can see that it does work as resources are moved to the footer: http://screencast.com/t/tEbTGRJF
The reported files aren’t reported by google based on their url and if they are reported means that they do appear on your page so you need to use that function to find all registered js and css resources and move them to the footer based on their id according to the instructions provided in the page speed guide.
If you have reported resources which don’t appear when you use the register scripts/styles id function then you should change the priority, some plugins may load after it and that’s why it doesn’t return all js – http://screencast.com/t/7fhfjttAT8
http://codex.wordpress.org/Function_Reference/add_action
If you don’t have experience on wp condign or basic html/css/js/php knowledge please consider hiring a freelancer to configure this for you or because we recommended this just for advanced wp users. Sorry!
Thanks for the message!